LINUX.ORG.RU

SED - обработка и печать только первого вхождения.

 


0

1

Обрабатывается текст (html): выбираются только те строки, которые содержат «idx=», после чего всё передаётся SED`у для обрезания подстроки. Всё работает, но sed обрабатывает весь документ, вываливая мне множество не нужных результатов (меня интересует только подстрока из первого вхождения). Вот CMD:

$ cat html | grep idx | sed -e 's/.*idx\=\([0-9]\+\).*/\1/'
9988
9987
...

★★

s/.*idx\=\([0-9]\+\).*/\1/q?

AITap ★★★★★
()

cat html | sed -e '/idx/ {s/.*idx\=\([0-9]\+\).*/\1/;q;}

anarquista ★★★★★
()

Всё работает, но sed обрабатывает весь документ, вываливая мне множество не нужных результатов (меня интересует только подстрока из первого вхождения). Вот CMD:

$ cat html | grep idx | sed -e 's/.*idx\=\([0-9]\+\).*/\1/'

sed -rn '/idx/{s/.*idx=([0-9]+).*/\1/';T;p;q;}' html

не тестировал, но думаю идея ясна.

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

q

cat html | grep idx | sed -e 's/.*idx\=\([0-9]\+\).*/\1/;q'

Готово! Не знал, что можно так просто...

zzdnx ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.