LINUX.ORG.RU

Добавить символы к строкам

 , , , ,


0

1

В текстовом файле есть кучу доменов(строк), начинающихся с новой строки. Допустим файл здесь /home/man/result.txt

Ко всем им нужно добавить в конец имени ".error.log" - без кавычек.

Ужасно разбираюсь в регулярках и команде sed, поэтому прошу вас помочь мне.

Как это реализовать ? Мне важна сама комманда, которая добавит .error.log в конец имени строки

sed -ie 's/\(.*\)/\1.error.log/' /home/man/result.txt

Yur4eg ★★ ()
Ответ на: комментарий от Yur4eg

оно применит команду ко всем строкам подряд в файле ? нет же цикла

gamble ()
Ответ на: комментарий от gamble

Да, sed обрабатывает все строки, он и есть «цикл». https://ru.wikipedia.org/wiki/Sed

sed получает входной поток (обычно файл) построчно, редактирует каждую строку согласно правилам, определённым в sed-скрипте с использованием простого языка sed, и затем выводит результат в выходной поток.

mky ★★★★★ ()
Ответ на: комментарий от mky

Спасибо. Лучше всего использовать man при изучении sed ?

gamble ()
Ответ на: комментарий от Yur4eg

Не понятно, зачем тут скобки и \1. Можно же просто дописывать в конец:

sed -i 's/$/error.log/

anarquista ★★★★★ ()
Ответ на: комментарий от shell-script

Однако, есть исключения: попробуйте, например, man sudoers на вкус :)

DRVTiny ★★★★★ ()
Ответ на: комментарий от DRVTiny

man sudoers

Его я относительно хорошо знаю. :)

Если уж пугать людей, так лучше предлагать что-нибудь типа man mplayer.

shell-script ★★★★★ ()
Ответ на: комментарий от gamble

Нет. man это справочник, а не учебник. Идёте в гугл, ищите различные страницы типа «Изучаем sed», начинаете с тех, что попроще, и где вместе с sed объясняют регулярные выражения. Потом, когда уже начитались, смотрите примеры использования наподобие http://ant0.ru/sed1line.html, как сможете объяснить как работает любой из таких примеров (пользуясь man'ом), значит изучили.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.