karashchuk.com » Бібліотека Знань » FreeBSD » Замінити слово або текст в декількох файлах за допомогою grep та sed

FreeBSD : Замінити слово або текст в декількох файлах за допомогою grep та sed

Менi недавно довелося замінити кожне входження слова точнiше IP адресу в великiй кiлькостi файлів , що охоплюють кілька каталогів, і це найшвидший спосіб що я знайшов, щоб зробити це.

Наприклад потрiбно замiнити IP адрес з 1.1.1.1 на 2.2.2.2 в файлах в яких буде знайдено текст "1.1.1.1"

grep -rl "1.1.1.1" ./ | xargs sed -i '.backup' 's/1.1.1.1/2.2.2.2/g'


Де .backup це той суфікс отримають копіЇ тих файлів які були змінені.

2015-10-30 09:18, author Андрiй
Лiпше за допомогою perl, бо в sed опцiя 'i' в деяких OS не працюэ

grep -rl "1.1.1.1" ./ | xargs perl -e 's/1.1.1.1/2.2.2.2/g' -pi
Вы только посетили наш сайт, КОММЕНТИРОВАНИЕ будет доступно через несколько минут.
возможно у Вас отключен javascript, если включен - просто обновите страницу