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

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

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

NAME=John AGE=30 CODE=xyz

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

Что я изменил его TO, будет одинаковым для всех файлов.

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

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

2 ответа

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

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
ответ дан 18 July 2018 в 01:30

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

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
ответ дан 24 July 2018 в 17:24
  • 1
    find / home / user / folder / configs / -type f -exec sed -i 's / currency = ... / currency = m / g' {} \; похоже, ничего не делает :( – Preston Cole 10 December 2017 в 04:02
  • 2
    GOT IT ... = количество символов, поэтому для одного символа мы изменим один. – Preston Cole 10 December 2017 в 04:14
  • 3
    Да, сэр, вы догадались, жаль, что я не объяснил, что – George Udosen 10 December 2017 в 09:38
  • 4
    Кроме того, мы могли бы использовать .*$, если хотим сопоставить все (*) символы (.) до конца ($) строки. Также я думаю, что нам не нужен флаг g. – pa4080 12 December 2017 в 01:45
  • 5
    Да, я заметил с флагом g, позвольте мне обновить это! – George Udosen 12 December 2017 в 01:47

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

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