LINUX.ORG.RU

sed - удаление комментариев

 


0

2

Всем привет, Хочу из файла /etc/filebeat/filebeat.yml удалить комментарии в строках 1,3 (нумерация условна, в файле все иначе)

#output.logstash:
  # The Logstash hosts
  #hosts: ["localhost:5044"]
Нагуглил только полное удаление всех коментов в файле через sed, есть идеи как удалить комменты только из 1 и 3 строки? В 3 строке перед комментарием - 2 пробела, они должны остатся.


Ответ на: комментарий от Oleg_Iu

Перезапись в новый файл - как то «некрасиво», есть еще идеи? Может awk ???

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

Что то не вижу поиск «по шаблону», я не говорил что надо удалять комментарий с 2й строки. В файле много комментариев и они должны остаться.

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

Удалось достичь результата 3 командами:

1) sed -i '/output.logstash/s/^#//g' /etc/filebeat/filebeat.yml
2) sed -i '/hosts: \["localhost:5044"\]/s/^  #//g' /etc/filebeat/filebeat.yml
3) sed -i -e 's/^hosts: \["localhost:5044"\]/   hosts: \["localhost:5044"\]/' /etc/filebeat/filebeat.yml

Вывод:

output.logstash:
  # The Logstash hosts
   hosts: ["localhost:5044"]

Если кто-то может добавить во 2й команде 3 пробела - покажите как, если нет - закрою тему.

dim4k ()
Последнее исправление: dim4k (всего исправлений: 1)
Ответ на: комментарий от dim4k

ты искал готовое решение, которое собезьянничал в консоль (надеюсь, от рута) а искать надо было объяснение, как с регэкспами работать

jenodin ()

Хренею-косею. AWK с энтим справится в масенткую строку. Причем недпредсказуемой хрени от Седа не будет.

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

Ну давайте пример! Хочу посмотреть! Пока sed отработал хорошо!!!

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

Извините, но если бы у меня с регуляками было бы «все хорошо» - я бы и тему не создавал. То что «масло маслянное» - я и так знаю… Я понимаю что примера я не дождусь.

dim4k ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей