Поиск и замена слов в файлах linux

Поиск и замена слов в файлах linux

Недавно столкнулся с проблемой, мне нужно было найти определенные слова в файлах и заменить их на нужный мне текст. Немного поискав в интернете, я нашел как это сделать, по этому решил записать заметку  «Поиск и замена слов в файлах linux», пригодится как мне так и другим пользователям. Это можно сделать командой find и  grep с некоторыми параметрами.

Простой поиск с использованием grep:

Поиск и замена текста в файлах:

Удаление определенного символа из файлов

Нужно символы прописывать в уникоде, если правильно понял.

Как заменить слово в файлах при рекурсивном поиске Linux?

Этой строкой мы ищем во всех файлах с разрешением *.py от текущей директории строку text_1 и заменяя  ее наtext_2, так же можно использовать regexp выражения.

Еще примеры

Для начала делаем поиск по фразе которая нам необходима, нам покажет все файлы и в каких строках содержится данная фраза:

Получаем:

или для конкретных файлов:

Выполнить замену можно еще следующим образом:

Допустим, Вам необходимо выполнить замену целой строки ( закомментировать какую либо функцию, добавив // перед самой функцией), то можно это сделать:

Экранируем спец символы и заменяем на любую другую строку, для этого:

Данная команда заменит одну строку на другую во всех файлах.

Упрощенная версия ее:

Можно удалить многострочное содержание текста который находиться, например между //###==### и //###==###

То чтобы удалить все строки кода между данными комментариями, выполните:

Я делал сканирование maldet и нашел много вредоносного кода, по этому, я удалил его так:

Еще пример:

-===Пример===-

Предположим, имеется файл и в нем находится:

Но по заданию, нужно чтобы было —  Three.Two.One

Для этого, выполним:

PS: О долбанном SED-е я расскажу очень не скоро, он меня реально бесит и злит. Кто ее придумал, реальный сука ДЖЕДАЙ 😀

Делаем замену другим способом:

ПРИМЕЧАНИЕ! Утилиту rpl необходимо установить.

Centos/RedHat/Fedora:

Debian/Ubuntu/Mint:

MacOS:

Устанавливаем HOMEBREW.

Выполняем установку:

Я попозже постараюсь привести еще примеров и рассказать о утилите в своей новой статье.

Когда не удобно искать файлы в консольном режиме и есть GUI интерфейс, то можно воспользоваться утилитой regexxer.
Debian/Ubuntu/Mint:

или

CentOS/RedHat/Fedora:

Очень простая и хорошая утилита, я сам ею пользовался и тестировал на своей виртуальной машине на Debian.

На этом моя короткая заметка  «Поиск и замена слов в файлах linux» завершена и готова к использованию.

2 thoughts on “Поиск и замена слов в файлах linux

  1. Здравствуйте У меня есть 39 тыс. html файлов, мне в них нужно оставить только один кусок кода, а остальной код удалить. Как это сделать автоматически, учитывая, что тот кусок кода, который нужно оставить, в каждом отдельном html файле разный (кстати он заключен в тег ), так же тот код, который нужно удалить, тоже в каждом отдельном файле разный?
    Короче говоря задача сводится к этому: нужно удалить код до открывающего тега и удалить код после закрывающего тега . Код, который нужно оставить, заключен в теги . Как это сделать и с помощью каких команд?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *