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

Думаю, я должен использовать sed, но не могу правильно его описать.

У меня есть папка с текстовыми файлами. Все они построены одинаково со списком переменных, например

.
NAME=John
AGE=30
CODE=xyz

Мне нужно просмотреть все файлы и изменить значение переменной, например CODE, на что-то другое. Итак, file1.txt - измените CODE=xyz на CODE=123 file2.txt - измените CODE=foo на CODE=123

То, что я изменяю, на ТО будет одинаковым для всех файлов.

Является ли sed лучшим для этого?

0
задан 9 December 2017 в 21:37

1 ответ

Это должно быть в состоянии изменить эти значения:

find /path/to/foler/ -type f -exec sed 's/CODE=.../CODE=123/' {} \;

Выполнение вышеуказанного кода ничего не изменит, но позволит вам увидеть, что изменилось. Чтобы изменить эти значения, добавьте флаг -i:

find /path/to/folder/ -type f -exec sed -i 's/CODE=.../CODE=123/' {} \;

Резервные копии также возможны, но с такими размерами ваши разговоры об этом могут быть не очень хорошими.

Информация:

  • ...: представляет только три буквы или символы, поэтому . будет для одной
  • -type f: мы ищем только файлы
  • -i: изменить значения на месте
1
ответ дан 9 December 2017 в 21:37

Другие вопросы по тегам:

Похожие вопросы: