Dentro do perl pode-se calcular o número de substituições e indicar uma falha se o número esperado não tiver sido feito com a desvantagem de ter que manter o número de subs, risco de falsos positivos, etc.
$ (echo cat; echo dog) \
| perl -ple '$s += s/cat/gato/; $s += s/dog/perro/;' \
-e 'END { die "incomplete sub" if $s != 2 }'
Ou fora, escreva os dados substituídos em um novo arquivo e confirme se newfile
é diferente do original file
:
perl ... file > newfile
cmp file newfile && echo >&2 "error unchanged"
A desvantagem deste formulário é que ele só pode detectar se as alterações no forem feitas, e não quando algumas das substituições totais falharem.