you could workaround the missing -i
like this (untested):
for i in `find . -name "*.java"`; do cp $i /tmp/$$; sed 's/foo/bar/g' < /tmp/$$ > $i;done
Я пытаюсь сделать рекурсивный поиск и замену в HP-UX, и мне чего-то не хватает.
Что имею на данный момент:
find . -name "*.java" | xargs sed 's/foo/bar/g'
Я знаю, проблема в том, что он не заменяет встроенный файл. Я считаю, что в других ОС есть флаг -i, но, похоже, в моей версии HP-UX его нет.
Какие-либо предложения?
you could workaround the missing -i
like this (untested):
for i in `find . -name "*.java"`; do cp $i /tmp/$$; sed 's/foo/bar/g' < /tmp/$$ > $i;done
You could always use ed
find . -name "*.java" | while IFS= read -r file; do ed "$file" <<ED_COMMANDS %s/foo/bar/g w q ED_COMMANDS done