У меня более 1000 файлов, и я хочу заменить специальный текст во всех них другой фразой.
как я могу это сделать с помощью сценария оболочки в Linux?
sed -i 's/old-word/new-word/g' *.txt
http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/
Just Bash
for file in *.txt do while read -r line do case "$line" in "*pattern*") line="${line//pattern/new}";; esac echo "$line" done <"$file" > t mv t "$file" done
Вы также можете использовать perl:
perl -pi -e 's/find/replace/g' *.txt
Примерно так:
for file in *.txt do cp $file $file.tmp cat $file.tmp | sed 's/foo/bar/g' > $file done
Использование sed .