найдите и замените в нескольких файлах на командной строке

Как я нахожу и заменяю строку на командной строке в нескольких файлах на Unix?

35
задан Vijay 13 December 2009 в 07:13
поделиться

3 ответа

есть много способов. Но один из ответов будет:

find . -name '*.html' |xargs perl -pi -e 's/find/replace/g'
44
ответ дан 27 November 2019 в 06:48
поделиться

с последней оболочкой bash, и предполагая, что вам не нужно перемещаться по каталогам

for file in *.txt
do
while read -r line
do
    echo ${line//find/replace} > temp        
done <"file"
mv temp "$file"
done 
2
ответ дан 27 November 2019 в 06:48
поделиться

Я всегда делал это с скриптами ed или ex scripts .

for i in "$@"; do ex - "$i" << 'eof'; done
%s/old/new/
x
eof

Команда ex - это просто режим: line из vi.

6
ответ дан 27 November 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: