行的一部分中的sed字符替换

行的一部分中的sed字符替换,sed,Sed,sed新手,可能需要一些帮助。 我想把这个“a/b/c a/b/c”变成这个“a/b/c a-b-c”。 其中a/b/c是任意路径 谢谢既然您想使用空格来删除,我就用perl: perl -ane '$F[1] =~ s/\//-/; print "@F\n"' 尝试一下: sed 'h; s/ .*//; x; s/.* //; s:/:-:g; x; G; s/\n/ /' 你可以用awk $ echo "a/b/c a/b/c" | awk '{gsub("/","-",$NF)}1'

sed新手,可能需要一些帮助。 我想把这个“a/b/c a/b/c”变成这个“a/b/c a-b-c”。 其中a/b/c是任意路径


谢谢

既然您想使用空格来删除,我就用perl:

perl -ane '$F[1] =~ s/\//-/; print "@F\n"'
尝试一下:

sed 'h; s/ .*//; x; s/.* //; s:/:-:g; x; G; s/\n/ /'
你可以用awk

$ echo "a/b/c a/b/c" | awk '{gsub("/","-",$NF)}1'
a/b/c a-b-c
这可能会奏效:

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

谢谢你在空格定义了行的第二部分后的回复,我尝试了你的第一个建议,但它对我不起作用回音“a/b/c a/b/c”| sed's@(.*)-@\1/@g'a/b/c a/b/c Corry,不确定我粘贴第一个图案时发生了什么;这显然是完全错误的。但是如果您想使用空格来进行定界,perl one's way会更加健壮。您可以确认Dennis的解决方案,这将给他一些分数,并将您的问题标记为已解决(而不是,或附加到prosa中的感谢)。