Gostaria de usar sed
ou perl
substituir todas as ocorrências de uma palavra que não tenha uma determinada palavra na frente.
Por exemplo, eu tenho um arquivo de texto que contém a trama de um filme e desejo substituir todas as ocorrências do sobrenome de um personagem pelo primeiro nome, mas apenas se o primeiro nome não aparecer imediatamente antes do sobrenome.
O texto de exemplo pode ficar assim:
John Smith and Jane Johnson talk about Smith's car.
Eu quero que fique assim:
John Smith and Jane Johnson talk about John's car.
Se eu apenas fizer sed 's/Smith/John/' file
, então eu teria:
John John and Jane Johnson talk about John's car.
O primeiro nome que vem antes do sobrenome sempre será o mesmo. Eu não tenho que lidar com John Smith
e Frank Smith
. Eu só preciso de uma maneira de combinar Smith
que não tem John
precedente.