Я использую команду grep
для поиска строки во многих файлах. Есть ли что-то похожее на «поиск и замена»?
Сед приходит на ум. Пример:
sed s/cat/dog/ <input >output
Это ищет кошку в строке и помещает собаку на ее место во входном файле и записывает в выходной файл.
sed
- правильный инструмент; но, в качестве альтернативы, вы можете даже использовать команды ex
в vim
:
vim -c 'args <files> | argdo %s/cat/dog/g | x'
, где <files>
- список файлов или шаблонов, в которых вы хотите произвести замену. ]
Вы ищете команду sed
. Например, чтобы заменить «собаку» на «кошку» во всех текстовых файлах в текущей директории:
Можно использовать Vim в режиме Ex:
for b in *.txt
do
ex -sc '%s/OLD/NEW/g|x' "$b"
done
%
выберите все строки
s
замена
g
замените все экземпляры в каждой строке
x
сохраните и закройтесь