[РЕШЕНО] Linux sed разделение регулярных выражений
Привет, Хабражители!
Раньше sed всегда корректно отрабатывал несколько регулярных выражений разделённых символом точка-с-запятой ";". Это позволяло запускать sed только один раз для отработки множества регулярных выражений.
Например комментировать строки содержащие «bugcode» и «betacode» sed -i '/bugcode/s/^/\#/; /betacode/s/^/\#/' /etc/file
Но сегодня обнаружил что это работает не всегда
Например нужно добавить строку «Ivan» после строки содержащей «123» и добавить строку «John» после строки содержащей «456». sed -i '/123/a Ivan; /456/a John' /etc/file
В итоге втрое регулярное выражение игнорируется и вставляется как текст.
По отдельности регулярные выражения срабатывают корректно.
Прошу подсказать куда копать, Гугл не помог.
Заранее спасибо за помощь
Если я всё правильно помню, это такая особенность команды a (а также i и c).
Чтобы не вызывать по сто раз sed можно сделать вот так: echo -e "123\n456" | sed -e '/123/a Ivan' -e '/456/a John'