Вы можете использовать Vim в режиме Ex:
заменить строку ALF на BRA во всех файлах в текущем каталоге?
for CHA in *
do
ex -sc '%s/ALF/BRA/g' -cx "$CHA"
done
сделать то же самое рекурсивно для подкаталогов?
find -type f -exec ex -sc '%s/ALF/BRA/g' -cx {} ';'
заменить, только если имя файла совпадает с другой строкой ?
for CHA in *.txt
do
ex -sc '%s/ALF/BRA/g' -cx "$CHA"
done
заменить, только если строка найдена в определенном контексте?
ex -sc 'g/DEL/s/ALF/BRA/g' -cx file
заменить, если строка находится на определенном номере строки?
ex -sc '2s/ALF/BRA/g' -cx file
заменить несколько строк одной и той же заменой
ex -sc '%s/\vALF|ECH/BRA/g' -cx file
заменить несколько строк разными заменами
ex -sc '%s/ALF/BRA/g|%s/FOX/GOL/g' -cx file