【发布时间】:2009-09-22 02:22:17
【问题描述】:
我得到一个文档,其中字段由冒号 (:) 分隔,我需要不时更改第二个字段。文档如下所示:
name1:UhX.PPFW7$YhPMH0BISY:23490::::::
name2:1./0oV$GEs6WJpE$LHXhy:19239:0:29388:2::29302:
...
文件的第二个字段偶尔会更改,可能包含几个正则表达式字符 ($ .) 和一个正斜杠。
我只想替换第二个字段,因为它后面的数据将来可能会有所不同。如果我这样做:
sed -e "s~^name2:.*:~name2:aTest\$repl.ace:~g" tst
第二列右边的文字丢失了:
name2:aTest$repl.ace:
(即“19239:0:29388:2::29302:”)。有没有办法 sed 可以替换不同的列并保留该行的其余部分?或者,是否有更好的程序可以做到这一点?
【问题讨论】: