Chinaunix
标题:
sed 文本替换问题
[打印本页]
作者:
zlyuan
时间:
2015-02-01 15:37
标题:
sed 文本替换问题
最近在学习sed 命令,求助,如何替换指定位置,而又不规则的文本?
如下文本,要把 /u1/usr/......... 之后的文本都替换成 /u2/user/default:/bin/ksh 。
那位大神指点一下?感谢!!1
0010
:633:500::/u1/usr/0010:/bin/ksh
0289
:634:500::/u1/usr/0289:/bin/ksh
02580
:635:500::/u1/usr/02580:/bin/ksh
0340001
:636:500::/u1/usr/0340001:/bin/ksh
需要修改,下列黄色区域的文本?
linux2.jpg
(36.63 KB, 下载次数: 31)
下载附件
2015-02-01 15:36 上传
作者:
zlyuan
时间:
2015-02-01 17:23
没人来,自己顶
作者:
qq58945591
时间:
2015-02-01 20:36
本帖最后由 qq58945591 于 2015-02-01 20:39 编辑
回复
1#
zlyuan
sed -r 's/\/[0-9]+/\/default/;{s/u1/u2/} file
作者:
zlyuan
时间:
2015-02-02 11:01
qq58945591 发表于 2015-02-01 20:36
还是不行,用[0-9]会把第一列的数字也修改了。
作者:
super皮波
时间:
2015-02-02 15:15
回复
1#
zlyuan
sed s%/u1.*%u1/usr/u2/user/default:/bin/ksh%
看看这个行不行
作者:
qq58945591
时间:
2015-02-02 18:59
本帖最后由 qq58945591 于 2015-02-02 19:01 编辑
回复
4#
zlyuan
我用/[0-9]+ 你确定能匹配得上第一列么?
如果没有前面的斜杠,那是会匹配第一列的。
你肯定是看错了前面的参数了,那是r 不是i
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2