Групповая замена текста в Линукс с помощью команды sed

В Linux можно заменить текст в множестве файлов, используя команду sed.

Команда sed (Stream Editor) позволяет изменять содержимое файла, фильтруя и преобразуя текстовый поток. Для замены текста в множестве файлов вам нужно выполнить следующие действия:

  1. Откройте терминал и перейдите в директорию, где находятся файлы, в которых вы хотите заменить текст.

  2. Выполните команду sed с использованием следующего синтаксиса:

     

    sed -i 's/старый_текст/новый_текст/g' файлы

    В этой команде:

    • -i означает "встроенная замена" (in-place replacement), что позволяет изменить содержимое файлов непосредственно на месте, без создания новых файлов;

    • s означает "замена" (substitution);

    • /старый_текст/ - это текст, который вы хотите заменить;

    • /новый_текст/ - это текст, на который вы хотите заменить старый текст;

    • g означает "глобальная замена" (global substitution), что позволяет заменить все вхождения старого текста на новый текст в каждом файле.

    Вы можете указать список файлов, в которых нужно заменить текст, через пробелы, например:

     

    sed -i 's/старый_текст/новый_текст/g' файл1 файл2 файл3

    Или вы можете использовать шаблон, чтобы выбрать файлы, в которых нужно выполнить замену, например:

     

    sed -i 's/старый_текст/новый_текст/g' *.txt

    В этом примере команда sed заменит старый текст на новый текст во всех файлах с расширением .txt.

  3. Выполните команду и убедитесь, что замена была выполнена успешно.