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

需要修改,下列黄色区域的文本?



作者: 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