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)
具体替换成哪个,我会根据字符串判断。
展开
 我来答
良玉小帝
2015-07-14 · 个人日常精心汇总合集
良玉小帝
采纳数:5925 获赞数:9451

向TA提问 私信TA
展开全部
[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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式