sed字符替换部分行

时间:2010-05-07 15:54:15

标签: sed

sed的新手,可以使用一些帮助。 我想把这个“a / b / c a / b / c”变成这个“a / b / c a-b-c”。 其中a / b / c是任何路径。

感谢

4 个答案:

答案 0 :(得分:1)

尝试一下:

sed 'h; s/ .*//; x; s/.* //; s:/:-:g; x; G; s/\n/ /'

答案 1 :(得分:0)

由于你想使用空格来删除,我只想使用perl:

perl -ane '$F[1] =~ s/\//-/; print "@F\n"'

答案 2 :(得分:0)

你可以使用awk,

$ echo "a/b/c a/b/c" | awk '{gsub("/","-",$NF)}1'
a/b/c a-b-c

答案 3 :(得分:0)

这可能有效:

echo "a/b/c a/b/c" | sed ':a;s|\(.* [^/]*\)/|\1-|;ta'
a/b/c a-b-c

或者这个:

echo "a/b/c a/b/c" | sed 's/.* //;h;y/\//-/;x;G;y/\n/ /'
a/b/c a-b-c