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

Найти и заменить текст может быть простой задачей, используя текстовые редакторы более простой. Но что происходит, когда вам нужно выполнить ту же задачу в нескольких файлах одновременно?

Ну, там все усложняется ... или не очень.


В следующем примере мы будем использовать sed, чтобы заменить все вхождения слова «mongo» словом «aurelio» во всех файлах с расширением .txt, находящихся в папке / home / user / myfolder /.

найти / home / user / myfolder / -name * .txt -exec sed -i "s / mongo / aurelio / g" {} \;

Это просто…

Прежде чем закончить, стоит упомянуть, что некоторые текстовые редакторы позволяют выполнять эту операцию с помощью графического интерфейса. Среди прочих стоит выделить Jedit, Geany, Regexxer и др.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   ТТГ сказал

    супер

  2.   Скептически настроен сказал

    Я использую Gedit

    1.    мрлон сказал

      gedit для нескольких файлов ??? в виде???

  3.   Рон сказал

    Как я мог вставить grep между ai?

    Мне нужно сделать следующее: найти внутри дома все файлы, которые называются index.html и содержат слово «XXXXXXX», и заменить его на «YYYYYYYYYY», так как это можно сделать так, чтобы поиск выполнялся только в файлы, которые действительно содержат строку?

    Большое спасибо !

  4.   Мелхор сказал

    Я тоже использую Gedit, но большое спасибо

  5.   Ангел гарсия сказал

    Вам не хватает аргумента для exec. Правильный код будет:
    найти / home / username / myfolder / -name * .txt -exec sed -i "s / mongo / aurelio / g" {} \;

    Привет 😀

    1.    давайте использовать Linux сказал

      Ты прав! Спасибо!
      Я это уже поправил. знак равно

  6.   Гардо сказал

    Я просто пробовал это (как ROOT):

    найдите / usr / share / icons / ACYL-Allgray / -name * .svg -exec sed -i "s / 666666/000000 / g" {} \;

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

  7.   Эдмундо сказал

    Вставить текст в несколько файлов в соответствии с номером строки, в моем случае строка 2 (2i) в centos linux

    найти / home // public_html / res / -name -exec sed -i "2i \;" {} \;

    1.    Эдмундо сказал

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

      найти / home / user / public_html / res / -name filename.ext -exec sed -i "2i \ text to insert" {} \;