Linux sed命令
比如我有一个文件a.txt,内容如下:ACHAR(8BYTE),BVARCHAR2(8CHAR),……想通过sed命令将括号内的数字CHAR替换为仅有数字,替换结果如下:...
比如我有一个文件a.txt,内容如下:
A CHAR(8 BYTE),
B VARCHAR2(8 CHAR),
……
想通过sed命令将括号内的数字 CHAR替换为仅有数字,替换结果如下:
A CHAR(8 BYTE),
B VARCHAR2(8),
非常感谢。
其实我替换的条件是替换每一行中包含圆括号,并且中间有三个参数,1、3个参数是数字,中间是字符串,比如(25,'abcd',38) ,检查条件就是(数字,‘任意字符串’,数字),然后替换为
[数字,‘目标字符串’,数字] 数字保持不变 如[25,'bran1',38]
(数字,‘目标字符串’,数字) 数字保持不变 如(25,'bran2',38)
具体替换成哪个,我会根据字符串判断。 展开
A CHAR(8 BYTE),
B VARCHAR2(8 CHAR),
……
想通过sed命令将括号内的数字 CHAR替换为仅有数字,替换结果如下:
A CHAR(8 BYTE),
B VARCHAR2(8),
非常感谢。
其实我替换的条件是替换每一行中包含圆括号,并且中间有三个参数,1、3个参数是数字,中间是字符串,比如(25,'abcd',38) ,检查条件就是(数字,‘任意字符串’,数字),然后替换为
[数字,‘目标字符串’,数字] 数字保持不变 如[25,'bran1',38]
(数字,‘目标字符串’,数字) 数字保持不变 如(25,'bran2',38)
具体替换成哪个,我会根据字符串判断。 展开
1个回答
展开全部
[root@localhost ~]# cat a.txt
A CHAR(8 BYTE),
B VARCHAR2(8 CHAR),
[root@localhost ~]# sed "s/ CHAR)/)/g" a.txt
A CHAR(8 BYTE),
B VARCHAR2(8),
[root@localhost ~]# cat a.txt
A CHAR(8 BYTE),
B VARCHAR2(8 CHAR),
[root@localhost ~]# sed -i "s/ CHAR)/)/g" a.txt #sed -i就是写进文本,并保存
[root@localhost ~]# cat a.txt
A CHAR(8 BYTE),
B VARCHAR2(8),
追问
非常感谢。 不过不好意思啊,我没表述太清楚。您看下补充。
追答
[root@localhost ~]# cat a
(25,'bran2',38)
(25,'bran2',abc)
(12abc,'bran2',abc)
[root@localhost ~]# sed "s/\(([0-9].*,'\)\(.*\)\(',[0-9].*)\)/\1bran1\3/" a
(25,'bran1',38)
(25,'bran2',abc)
(12abc,'bran2',abc)
把第一行符合你要求的,bran2替换成了指定的bran1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询