LINUX.ORG.RU

Какой unix tool выбирает из потока текст по заданному паттерну?


0

0

Есть *неупорядоченный* текстовый файл. В нём попадаются интересующие меня куски, подпадающие под определённый regex-паттерн. Хотелось бы из входного потока а) выбрать все интересующие меня куски и б) вывести их по одному в каждой строке.

Как это сделать наиболее стандартным и простым юникс-веем?

$ cat file | select-by-pattern «a..»
a12
a22
a80

★★

Последнее исправление: pvv (всего исправлений: 2)

~ $ cat blah
a12
b23
a22
h26
a80
~ $ cat blah | grep '^a'
a12
a22
a80
edigaryev ★★★★★
()

Ну и вопросы пошли...

man grep

man re_format

GotF ★★★★★
()

OMFG, ты тут ещё и не первый день О_х

GotF ★★★★★
()

Ребята с грепом - остыньте - данные *неупорядочены*.

За ре_формат спасибо - почитаю.

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

Ок. Ре_формат не пригодился.

Не, ну если вы грепом умеете решать такую задачу, то буду только рад увидеть пример или подсказку куда копать. Вот пример от edigaryev не подходит.

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

Сформулируй более точно задачу. Или тебе нужно выбрать именно строки, имеющие в начале паттерн «буква, затем два любых символа»? Или только сами эти «кусочки», исключая остальное?

GotF ★★★★★
()
Ответ на: комментарий от GotF
.-(~)---------------------------------------------------------(gotf@persephone)-
`--> cat test 
a13erjtgvenrvga55mvlhbla65
dgljlya87a90n,gmjky
.-(~)---------------------------------------------------------(gotf@persephone)-
`--> grep -o 'a..' test 
a13
a55
a65
a87
a90

Только не ручаюсь за «стандартность» опции "-o".

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

Опция -о что надо. Будучи посланным читать man grep нашёл её и хотел проверить, но не получилось - недоступна она мне. Ну правильный греп можно попробовать добыть...

Спасибо. Вобщем-то это решение.

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

По-моему, эта опция только в GNU grep. Если хочется POSIX'а, можно как-то сделать выборку с помощью sed.

GotF ★★★★★
()

Если не устраивает grep, можно perl.

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