Estou tentando fazer uma localização e substituição recursiva no HP-UX e estou faltando alguma coisa.
O que tenho no momento:
find . -name "*.java" | xargs sed 's/foo/bar/g'
Eu sei que o problema é que ele não está substituindo o arquivo embutido. Acredito que em outros sistemas operacionais haja um sinalizador -i, mas parece que na minha versão HP-UX não existe.
Alguma sugestão?
Responder1
você poderia contornar a falta -i
assim (não testado):
for i in `find . -name "*.java"`; do cp $i /tmp/$$; sed 's/foo/bar/g' < /tmp/$$ > $i;done
Responder2
Você sempre pode usared
find . -name "*.java" | while IFS= read -r file; do
ed "$file" <<ED_COMMANDS
%s/foo/bar/g
w
q
ED_COMMANDS
done