замена символа sed в части строки - PullRequest
2 голосов
/ 07 мая 2010

Новичок в sed и может использовать некоторую помощь.Я хотел бы превратить эту «a / b / ca / ​​b / c» в эту «a / b / c abc».где a / b / c - любой путь.

спасибо

Ответы [ 4 ]

1 голос
/ 07 мая 2010

Попробуйте:

sed 'h; s/ .*//; x; s/.* //; s:/:-:g; x; G; s/\n/ /'
0 голосов
/ 18 ноября 2011

Это может работать:

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
0 голосов
/ 08 мая 2010

вы можете использовать awk,

$ echo "a/b/c a/b/c" | awk '{gsub("/","-",$NF)}1'
a/b/c a-b-c
0 голосов
/ 07 мая 2010

Поскольку вы хотите использовать пробелы для удаления, я бы просто использовал perl:

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