O seguinte funciona com o GNU sed
- ele faz uso dos marcadores de limite de palavra \<
e \>
para garantir que ele altere apenas old
para new
quando é uma "palavra" por si só e não apenas incorporado como parte de uma palavra como cold
.
$ sed -e 's/\<old\>/new/g' foo.c
for(int i=0; i<new(a, 10); i++)
{
sum += new(c*c, i*a)
}
Use a opção -i
do GNU sed se você quiser alterar o arquivo no local em vez de imprimir para o stdout.
AVISO : este script sed
mudará TODAS ocorrências de /\<old\>/
no arquivo de origem. Isso pode ser muito mais do que você deseja mudar.