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 -i
de 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