Вывод имени названного шаблона в sed или grep - PullRequest
0 голосов
/ 09 января 2020

Я ищу решение для вывода имени именованного шаблона в регулярном выражении

Regex - может содержать n шаблонов, каждый с именем id n , без дубликатов:

(?P<id1>aba)|(?P<id2>cde)|(?P<id3>esa)|(?P<id4>fav)

входной файл:

aba
cec
fav
gex
hur

вывод (любой из следующих):

id1
id4

id1;id4

1
4

1;4

Есть ли любой способ сделать это с помощью sed или grep на linux os. Входной файл представляет собой текстовый файл 200-500MB. Я знаю, что PHP выводит имена шаблонов в выходном массиве, но я бы предпочел не использовать его.

Любое другое решение также приветствуется, но оно должно использовать команды basi c linux.

1 Ответ

1 голос
/ 09 января 2020

Вот простой Perl скрипт, который делает то, что вы просите.

perl -nle 'if (m/(?P<id1>aba)|(?P<id2>cde)|(?P<id3>esa)|(?P<id4>fav)/) {
    for my $pat (keys %+) { print $pat } }' filename
...