sat + procura palavra com strings e substitui todas as palavras

0

Eu quero criar com sed o seguinte:

Por exemplo, cada palavra no arquivo que tem o ssss... Deve ser substituído (toda a palavra) por string de destino como gggg .

echo "duwdbnhb ssssssmnfkejfnei" | sed s'/ssssss*/gggg/g'
duwdbnhb ggggmnfkejfnei

deve ser:

duwdbnhb gggg

remark - string pode estar com um par de s strings (por exemplo ss ou sss ou ssssss ...)

Exemplo:

echo "duwdbnhb sssmnfkejfnei" | sed s'/s*/gggg/g'
duwdbnhb gggg

exemplo A

echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" |  sed s'/ss.*/gggg/'

rf3 f34kf3ein3e gggg

mas deve imprimir isso:

rf3 f34kf3ein3e gggg swswww gggg

exemplo B

echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" |  sed s'/s.*/gggg/'

rf3 f34kf3ein3e gggg

mas deve imprimir isso:

rf3 f34kf3ein3e gggg gggg gggg
    
por yael 27.01.2016 / 13:05

2 respostas

0

Se eu entendi corretamente, você deseja substituir cada palavra que começa com 2 ou mais s caracteres:

sed s'/ss[^[:blank:]]*/gggg/g'
    
por 27.01.2016 / 13:10
0

Você pode fazer:

sed -r 's/(^|[[:blank:]])(ss[^[:blank:]]*)/gggg/g' file.txt

Exemplo:

% echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" | sed -r 's/(^|[[:blank:]])(ss[^[:blank:]]*)/gggg/g' 
rf3 f34kf3ein3e gggg swswww gggg
    
por 27.01.2016 / 13:16