Supondo que você tenha file.txt
contendo essas duas linhas:
here is this
but not this
Você pode executar o seguinte comando sed
para substituir "this" por "that" em todas as linhas que contêm a palavra "here", deixando todas as outras linhas intactas:
sed '/\bhere\b/ s/\bthis\b/that/g' file.txt
Observe que \b
nos padrões simboliza limites de palavras, ou seja, o início ou o fim de uma palavra. Sem esses, e. "lá" também corresponderia.
Saída:
here is that
but not this
Leia man sed
para mais informações.