Unix HP-UX ksh búsqueda recursiva y reemplazo

Unix HP-UX ksh búsqueda recursiva y reemplazo

Estoy intentando realizar una búsqueda y reemplazo recursivo en HP-UX y me falta algo.

Lo que tengo en este momento:

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

Sé que el problema es que no reemplaza el archivo en línea. Creo que en otros sistemas operativos hay un indicador -i, pero parece que en mi versión HP-UX no lo hay.

¿Alguna sugerencia?

Respuesta1

podrías solucionar lo que falta -ide esta manera (no probado):

for i in `find . -name "*.java"`; do cp $i /tmp/$$; sed 's/foo/bar/g' < /tmp/$$ > $i;done

Respuesta2

Siempre puedes usared

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

información relacionada