LINUX.ORG.RU

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

 


0

2

Кто вкурсе как на bash закоментировать определенную строку в файле или в потоке? например если ввожу вот такую команду:

echo -e "192.168.1.2\n192.168.1.21" | sed s/192.168.1.2/#192.168.1.21/

то ожидая что 192.168.1.2 будет закоментирован вижу что закоментировалось все....



Последнее исправление: echo_ (всего исправлений: 1)

Для конкретно этого примера подойдёт вот такое решение:

echo -e "192.168.1.2\n192.168.1.21" | sed -e 's/192.168.1.2$/#192.168.1.21/'

shell-script ★★★★★
()

как на bash закоментировать определенную строку в файле

Только перезаписав все содержимое файла с начала.

или в потоке?

Добавить в начало строки знак(и) начала построчного комментария, если они в этом языке есть.

С чем из необходимого для этого вы испытываете затруднения: с построчным чтением файла (потока)? со подсчетом или сравнением строк? со сложением строк? с построчным выводом в файл (поток)?

echo -e «192.168.1.2\n192.168.1.21» | sed s/192.168.1.2/#192.168.1.21/

Какое это имеет отношение к вашему словесному вопросу?

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

Как то так получается что всеравно коментируется 2 строки,что бы я не делал, по логике я коментирую строку в файле,и делаю это примерно так:

cat file | sed **** > file.tmp
cat file.tmp  > file
оно и работает ,но если будет именно такая последовательность ip как выше,то коментируется все что в конце имеет цыфру 2 , странно но факт, есть каие то болеенормалные идеи для такой темы?

echo_
() автор топика
's/192.168.1.2/#192.168.1.21/'

Тепло, но это неправильно. Читай что такое регулярные выражения.

  • '.' (точка) - принимает любой символ. То есть твоя регулярка заменит вхождение '192л168о1л2'
  • строке 192.168.1.21 есть подстрока 192.168.1.2, поэтому тоже будет заменен. Подсказка: может тебе надо еще пробельный символ добавить в конец шаблона, или что там у тебя в заменяемом тексте.
  • ошибка копипасты: '2' заменяешь '21'. Посмотри на расширенные рег выражения с группами для замены вхождений групп (sed -r), как метод борьбы с подобными ошибками
anonymous
()

Может всё же прочтёшь мануал хоть по чем-нибудь, дебилоид?

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