Вставить текст в указанное место, rx10nth, 06-Фев-11, 18:59 [смотреть все]Доброго времени, никак не могу нагуглить, как бы с помощью sed/awk реализовать подобное:Есть конфиг вида Open string string string /Close ... Open string string string /Close Нужно между каждым open и close, после определенной 'string' вставить строку с табуляцией в начале. string - желательно регулярка, но можно и просто вхождение, либо, как вариант, просто номер строки между каждыми открывающими и закрывающими директивами. --- На крайняк попроще, просто вставить строку текста с табуляцией после каждого Open в конфиге. Заранее благодарен.
|
- Вставить текст в указанное место, phpcoder, 20:13 , 06-Фев-11 (1)
> Доброго времени, никак не могу нагуглить, как бы с помощью sed/awk реализовать > подобное:В sed есть a, в awk просто смотри какая у тебя строка и если та что нужна то дополнительно выводи то что тебе нужно.
- Вставить текст в указанное место, rx10nth, 20:44 , 06-Фев-11 (2)
В sed не подскажите условие, чтобы добавлялось после строки string, если она находится между Open и /Close ?
- Вставить текст в указанное место, a, 22:55 , 06-Фев-11 (3)
>[оверквотинг удален] > string > /Close > Нужно между каждым open и close, после определенной 'string' вставить строку с > табуляцией в начале. string - желательно регулярка, но можно и просто > вхождение, либо, как вариант, просто номер строки между каждыми открывающими и > закрывающими директивами. > --- > На крайняк попроще, просто вставить строку текста с табуляцией после каждого Open > в конфиге. > Заранее благодарен.echo -e "Open\nstring1\nstringa\nstring\n/Close\nstring1\nstring" | awk -v STATE=OUT '{ if ( $0 ~ /Open/ ) { STATE="IN" }; if ( $0 ~ /\/Close/ ) { STATE="OUT" }; if ( STATE=="IN" && $0 ~/string1/ ) { print $0; print "\tmy_string"; } else { print $0 } }' Open string1 stringa string /Close string1 string Open string1 my_string stringa string /Close string1 string
|