LINUX.ORG.RU

регулярки баш


0

1

есть строки в файле:

test=345 dssd
test=235 dssd
test=35675 dssd
test=4545 dssd

задача: собрать список всех чисел: 345, 235, 35675, 4545

написал такую команду:

grep --binary-files=text -Eo 'test=([0-9]+)' file.txt

но в вывод попадает:

test=345
test=235
test=35675
test=4545

т.е. скобки не определяют что надо вернуть, в отличие от того, как это сделано в питон и пхп.

что я делаю не так?

Ответ на: комментарий от arsi

если

$ grep -Po '(?<=test=)\d+' file.txt
grep: Поддержка параметра -P не включена при компиляции данного исполняемого файла (--disable-perl-regexp)
то
$ cat file.txt | sed -ne 's/.*=\([0-9]*\).*/\1/p;'
или
$ cat file.txt | cut -d'=' -f2 | cut -d' ' -f1

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