LinuxForum.Fans
Тема

Извлечь подстроку

Автор: overlayer 4 сообщений 3000 просмотров
#383502

В самом общем виде проблема такая- есть данные вида:

text
..
text MARKER1 text MARKER2 text
..

где "text" - это произвольный набор символов. Нужно извлечь подстроку между MARKER1 и MARKER2.

Во-первых, что использовать? sed, awk или может быть sgrep? Во-вторых - а можно примерчик? А то я вконец запутался.

#383505

Придёт drBatty, напишет «красиво», а я так...
[console]~/ echo "text MARKER1 text_text MARKER2 text" | sed 's/.*\(MARKER1\)\(.*\)\(MARKER2\).*/\2/'
text_text[/console]

#383509

Lupo Alberto, вроде конструкцию понял, спасибо.

#383547

Еще короче:
[console]sgrep '"MARKER1" __ "MARKER2"' data.txt[/console]
но мануал sgrep написан какими-то норкоманами.

Войдите или зарегистрируйтесь, чтобы ответить.