sed: substitua 1 palavra sem repetir o resto da sentença

1

Eu tenho o seguinte padrão:

foo bar

com foo sendo sempre o mesmo, mas bar pode mudar. Eu tenho uma tabela de hash que, para cada valor de bar , tem um novo. O que eu faço agora é:

sed -i 's/foo bar/foo new_value/g' file

Tenho certeza de que há uma maneira de evitar a repetição do foo na string de substituição. O sed fornece algo assim? Como

sed -i 's/foo @@bar@@/new_value/g' file

@@string@@ é o valor que deve ser substituído.

    
por EddaSnorra 24.10.2014 / 11:07

1 resposta

0

sed -i 's/\(foo \)bar/new_value/g' file

A sequência \( \) "captura" o texto que pode ser colocado na string de substituição como . Isso pode ser feito várias vezes, o dígito em indica qual texto capturado usar. O texto capturado é contado na ordem de \( .

    
por 24.10.2014 / 11:10

Tags