Думаю, я должен использовать sed
, но не могу правильно его описать.
У меня есть папка с текстовыми файлами. Все они построены одинаково со списком переменных, например
.NAME=John
AGE=30
CODE=xyz
Мне нужно просмотреть все файлы и изменить значение переменной, например CODE, на что-то другое. Итак, file1.txt - измените CODE=xyz
на CODE=123
file2.txt - измените CODE=foo
на CODE=123
То, что я изменяю, на ТО будет одинаковым для всех файлов.
Является ли sed
лучшим для этого?
Это должно быть в состоянии изменить эти значения:
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
: изменить значения на месте