Escape da barra, escrevendo \/
Você também pode fazer:
perl -pi -e 's!original!result!g' *java
usando !
como um delimitador em vez de /
. Isso é um pouco mais curto do que usar o recurso Localizar & sed.
Então cheguei à conclusão de que, para recursivamente substituir todas as instâncias de uma string no diretório (somente para arquivos de extensões .java), preciso usar
find . -type f -name "*.java" -exec sed -i 's/original/result/g' {} +
No entanto, o que eu faço se a string que estou tentando substituir contiver /
?
Por exemplo, eu quero substituir a string /*Comment*/
por algumas palavras normais, quais delimitadores devo usar, para que o sed funcione corretamente?
Você pode usar qualquer delimitador usando sed
também (não apenas com perl
como @ vesa-karjalainen sugerido), por exemplo
find . -type f -name "*.java" -exec sed -i 's:original:result:g' {} +