Unix HP-UX ksh recursivo localiza e substitui

3

Estou tentando fazer uma descoberta recursiva e substituí-la no HP-UX e estou perdendo alguma coisa.

O que eu tenho no momento:

find . -name "*.java" | xargs sed 's/foo/bar/g'

Eu sei que o problema é que não está substituindo o arquivo inline. Eu acredito em outro sistema operacional, há um sinalizador -i, mas parece que na minha versão HP-UX, não existe.

Alguma sugestão?

    
por user187195 11.01.2013 / 13:47

2 respostas

1

você poderia solucionar o -i ausente como este (não testado):

for i in 'find . -name "*.java"'; do cp $i /tmp/$$; sed 's/foo/bar/g' < /tmp/$$ > $i;done
    
por 11.01.2013 / 14:05
1

Você sempre pode usar ed

find . -name "*.java" | while IFS= read -r file; do
  ed "$file" <<ED_COMMANDS
%s/foo/bar/g
w
q
ED_COMMANDS
done
    
por 11.01.2013 / 14:08

Tags