Localização e substituição recursiva Unix HP-UX ksh

Localização e substituição recursiva Unix HP-UX ksh

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 -iassim (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

informação relacionada