Найти и заменить текст в нескольких файлах

Найти и заменить текст в нескольких файлах

Я хочу знать, как найти и заменить определенный текст в нескольких файлах, как в Notepad++ в указанном ниже руководстве.

например:http://cybernetnews.com/find-replace-multiple-files/

решение1

Здесь я использую sed для замены каждого вхождения слова «cybernetnews» на «cybernet» в каждом файле с расширением c в каталоге /home/user/directory/.

find /home/user/directory -name \*.c -exec sed -i "s/cybernetnews/cybernet/g" {} \;

Более общий вариант, в котором вы выполняете рекурсивный поиск из каталога выполнения и работаете только с обычными, доступными для чтения и записи файлами:

find ./ -type f -readable -writable -exec sed -i "s/cybernetnews/cybernet/g" {} \;

решение2

Потоковый редактор sed — это мощная утилита для такого рода работы, и это мой первый выбор. Однако, если вы хотите сделать это из обычного текстового редактора, используя собственное приложение на базе Ubuntu, я бы посоветовал вам взглянуть на Jedit. Он доступен в репозиториях и может быть установлен, введя в консоли:

sudo apt-get install jedit

Запустите jedit, щелкните пункт меню «Поиск», в списке меню щелкните пункт «Поиск в каталоге», вам будет представлено диалоговое окно, показанное ниже:

Диалоговое окно поиска в папке Jedit

Это похоже на Notepad++ и делает то же самое. Я думаю, это то, что вам нужно.

решение3

Другой вариант графического интерфейса —регулярный екссер: скриншот regexxer

решение4

Проверить сДжини, это идеальная замена NPP для Linux. Вы можете сделать именно это, плюс вы можете использовать regex.

Связанный контент