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

У меня есть дерево папок внутри этих папок, есть много текстовых файлов. Эти файлы имеют одно и то же имя «log.txt» и тот же формат. Например, внутри каждого файла мы видим несколько строк, например:

date name . . . 

Как я могу использовать команду find для поиска всех текстовых файлов «log.txt» в этих папках дерева, а затем заменить слово «дата» внутри каждого текстового файла словом «датирование»?

2 Solutions collect form web for “Найти и заменить слова в текстовом файле рекурсивно”

Предполагая, что вы находитесь в корне дерева (иначе замените «.» На имя каталога). Вы можете заменить «log.txt» на «* .txt» или что угодно.

 find . -type f -name 'log.txt' -exec sed -i 's/date/dating/g' {} \; 

Вы можете использовать find и sed из корневого каталога:

 find . -type f -name 'log.txt' -exec sed -i 's/^date$/dating/' {} + 
  • find . -type f -name 'log.txt' find . -type f -name 'log.txt' найдет все файлы log.txt рекурсивно

  • В предикате -exec find , sed -i 's/^date$/dating/' {} + заменяет date в строке файлов с dating , на месте.

  • Редактируйте несколько строк из определенного раздела INI-файла
  • Сортировка одного файла по строке на основе другого файла
  • Как использовать регулярное выражение с AWK для замены строки?
  • Bash - Разбить предыдущие параметры команд
  • условная окраска в grep
  • Как анализировать файл данных для извлечения определенных данных и формата для другого использования?
  • Помощь с повторением поля A в CSV-файле, где поле B имеет указанное значение
  • Копировать только Конкретный текст файла в другой
  • цикл через выход одной команды и использовать в другой команде
  • Обработка текста. Создание файла slurm topology.conf из вывода ibnetdiscover.
  • Как заполнить конечные теги с помощью sed, awk или любой другой команды?
  • Interesting Posts

    Bash для соответствия каталогам, имена которых начинаются с точки (периода), будучи «явным», вместо использования «shopt -s dotglob»?

    Как сделать apt выбор определенного пакета из определенного источника?

    Как отключить SSLv2 и SSLv3 в pure-ftpd

    Нет подсказки индикатора bash после завершения разветвленного процесса

    Стабильное распределение серверов без systemd (для OpenVZ)?

    Как разбить CSV-файл на начальный столбец (с заголовками)?

    Как вы проводите время, в течение которого команда выполнялась?

    Shellshock: почему эта ошибка при тестировании на уязвимость

    lsof для конкретного процесса?

    Неправильное количество полос движения через DisplayPort, возможно, проблема с драйвером Nvidia GTX 1080

    Отключить 2FA во время дома

    Как я могу нажимать клавишу «keycode 53» каждую минуту в X?

    Как удалить те столбцы файла, в которых содержится менее двух цифр?

    Awk, чтобы получить следующую строку из сопоставленного шаблона и обрезать строку между двумя шаблонами

    Настроить sendmail для отправки только

    Linux и Unix - лучшая ОС в мире.