Você pode ter que dizer ao perl que o script contém caracteres UTF-8:
perl -Mutf8 -pi -e 's/Ç/|/g' diff_new_old.dat
veja o link
Estou tentando executar o comando abaixo a partir de um script de shell:
%código%
Este comando é executado sem erros, mas a execução não faz a substituição pretendida. Não parece que o shell tenha um problema com a execução do comando perl, pois perl -pi -e 's/Ç/|/g' diff_new_old.dat
funciona bem. Parece um problema com a substituição de caracteres especiais.
Quando executo o mesmo comando diretamente no $ prompt, ele executa bem e substitui todos os caracteres Ç por | no arquivo. Eu quero automatizar este processo e, portanto, preciso de uma maneira de fazer isso de um script de shell.
Eu também tentei usar o comando / s / | / 'do sed. Mas isso resulta em erro abaixo: sed: -e expressão # 1, char 6: comando 'não terminado'
Por favor, deixe-me saber o que posso fazer para conseguir a substituição.
Obrigado antecipadamente.
Você pode ter que dizer ao perl que o script contém caracteres UTF-8:
perl -Mutf8 -pi -e 's/Ç/|/g' diff_new_old.dat
veja o link
Tags perl shell unix shell-script