The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Вставить текст в указанное место"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Вставить текст в указанное место"  +/
Сообщение от rx10nth (ok) on 06-Фев-11, 18:59 
Доброго времени, никак не могу нагуглить, как бы с помощью sed/awk реализовать подобное:

Есть конфиг вида

Open
    string
    string
    string
/Close
...
Open
    string
    string
    string
/Close

Нужно между каждым open и close, после определенной 'string' вставить строку с табуляцией в начале. string - желательно регулярка, но можно и просто вхождение, либо, как вариант, просто номер строки между каждыми открывающими и закрывающими директивами.
---
На крайняк попроще, просто вставить строку текста с табуляцией после каждого Open в конфиге.
Заранее благодарен.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Вставить текст в указанное место"  +/
Сообщение от phpcoder email(ok) on 06-Фев-11, 20:13 
> Доброго времени, никак не могу нагуглить, как бы с помощью sed/awk реализовать
> подобное:

В sed есть a, в awk просто смотри какая у тебя строка и если та что нужна то дополнительно выводи то что тебе нужно.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Вставить текст в указанное место"  +/
Сообщение от rx10nth (ok) on 06-Фев-11, 20:44 
В sed не подскажите условие, чтобы добавлялось после строки string, если она находится между Open и /Close ?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Вставить текст в указанное место"  +/
Сообщение от a (??) on 06-Фев-11, 22:55 
>[оверквотинг удален]
>  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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Вставить текст в указанное место"  +/
Сообщение от rx10nth (ok) on 06-Фев-11, 23:26 
Благодарю, то что нужно.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру