Как бы красиво это сделать? Есть два варианта, оба работают.
Задача найти строку и вывести только цифры:
1.
grep -wo \"Почта\".\/\>\<strong.class=\"num\"\>[0-9]* | grep -o [0-9]*2. grep -wo \"Почта\".\/\>\<strong.class=\"num\"\>[0-9] | sed s/[\a-z\<\>\\/\"\=\Почта\ \]//g
Вроде бы считается, что sed работает быстрее. Или это не принципиально для такой простой задачи?
Можно ли использовать grep дважды?
И как бы сделать это с sed менее символозатратно?
> Как бы красиво это сделать? Есть два варианта, оба работают.
> Задача найти строку и вывести только цифры:
> 1.
> grep -wo \"Почта\".\/\>\<strong.class=\"num\"\>[0-9]* | grep -o [0-9]*
> 2. grep -wo \"Почта\".\/\>\<strong.class=\"num\"\>[0-9] | sed s/[\a-z\<\>\\/\"\=\Почта\
> \]//g
> Вроде бы считается, что sed работает быстрее. Или это не принципиально для
> такой простой задачи?
> Можно ли использовать grep дважды?
> И как бы сделать это с sed менее символозатратно?Попробуйте так:
sed -nr '/"Почта".\/><strong.class="num">[0-9]/s/[^[:digit:]]//gp'
Не работает почему-то
Там такая строчка:alt="Почта" /></span>123
Т.е. это не вся строка, нужная часть только
> Не работает почему-то
> Там такая строчка:
> alt="Почта" /></span>123
> Т.е. это не вся строка, нужная часть толькоВот ведь ёлы-палы! :-) Я из вашего же сообщения брал строку поиска, а тут вы заявляете, что
в реальности оно не так - в заблуждение вводите, однако. :-)Ну да ладно, попробуем несколько упростить фильтр:
sed -nr '/Почта.*[0-9]/s/[^[:digit:]]//gp'У меня эта конструкция работает:
$ echo '"Почта"./><strong.class="num">1234jj09' | sed -nr '/Почта.*[0-9]/s/[^[:digit:]]//gp'
123409P. S. И еще один немаловажный момент: какую ОС и версию sed вы используете? Собственно,
мне с этого вопроса и следовало бы начать, поскольку сами-то вы этого не указали. :-)P. P. S. Насчет "вроде бы sed работает быстрее" могу посоветовать использовать утилиту time.
Несколько раз прогоните команды вида time grep <file> и time sed <file>, а потом
сравните вывод, который будет выдавать time. Получите точный ответ без "вроде бы". :-)
Да, точно, забыл про возможную разность версий,
так как у меня-то команды из первого сообщения работают.