Иногда возникает необходимость выполнить автозамену большого количества фрагментов текста в одном или нескольких файлах для этого существуют простые ssh команды для автозамены текста.
Автозамена текста в одном файле
1 |
cat file.txt |replace "1fragment" "2fragment" > file_1 |
В данной команде всё интуитивно понятно, file.txt это наш файл в котором мы будем делать автозамену, 1fragment – фрагмент текста, который нужно заменить, 2fragment – фрагмент текста, который нужно вставить (то есть тот на, который нам нужно изменить).
Автозамена текста в нескольких файлах
Вариант 1 с поиском файлов содержащими определённый текст.
1 |
grep -lr 'text_fragment' *|xargs sed -i -r 's/text_fragment/text_fragment2/g' |
Такой вариант автозамены слов в файлах. Сначала мы ищем все файлы которые содержат слово text_fragment затем изменяем слово text_fragment на text_fragment2 опять же всё довольно просто и удобно.
Вариант 2 с поиском файов по заданной маске или имени.
1 |
find -type f -name \*.conf -exec sed -i -r 's/text_to_replace1/text_to_replace2/g' {} \; |
Ищем файлы по маске “\*.conf” то есть содержащие в конце имени такой текст “\*.conf” и производим во всех найденных файлах автозамену текста text_to_replace1 на text_to_replace2.