Как я нахожу и заменяю строку на командной строке в нескольких файлах на Unix?
есть много способов. Но один из ответов будет:
find . -name '*.html' |xargs perl -pi -e 's/find/replace/g'
с последней оболочкой bash, и предполагая, что вам не нужно перемещаться по каталогам
for file in *.txt
do
while read -r line
do
echo ${line//find/replace} > temp
done <"file"
mv temp "$file"
done
Я всегда делал это с скриптами ed или ex scripts .
for i in "$@"; do ex - "$i" << 'eof'; done
%s/old/new/
x
eof
Команда ex - это просто режим: line из vi.