X

Linux: заменить вхождение текста во всех файлах в папке

Во время переноса домена появилась задача исправить множество xml файлов сайтмапов сгруппированных по датам в разных папках. Пример структуры..

./sitemap/
    /2018-01/
        /file-1.xml
        /file-2.xml
    /2018-02/
        /file-3.xml
        /file-4.xml
и т.д.

во всех файлах, нужно заменить site-1.com, на site-2.com. Можно было бы быстро набрасать небольшой скрипт для обхода, но я пошел другим путем и погуглил можно ли тоже самое сделать родными командами linux. Оказывается можно и довольно просто:

find ./sitemap/ -type f \
    -exec sed -i -e 's/site-1.com/site-2.com/g' {} \;

в корневом каталоге, были корневые сайтмапы, в них замену сделал так

find ./sitemap*.xml -type f \ 
-exec sed -i -e 's/site-1.com/site-2.com/g' {} \;

Категории: Linux
Тэги: linuxsedзаменафайлы