Как сохранить каждую группу захвата для регулярного выражения bash? - PullRequest
0 голосов
/ 14 сентября 2018

Чтобы сделать это действительно простым, я должен использовать регулярное выражение для выбора строки в сложном файле.Я хотел бы "сохранить" в файле некоторую часть выбора регулярных выражений.Поэтому я использую группы захвата и ... я не знаю, как использовать результат th.

Например: list.txt:

abc 123 def 456

Вот мое регулярное выражение с группой захвата:

(\d{3}) (\w{3})

Например, команда оболочки с grep (может быть что-то еще, мне все равно):

egrep '(\d{3}) (\w{3})' list.txt

Как сохранить или использовать все результаты \ d {3} и \ w {3}?Я не могу просто использовать

egrep '\d{3}' > digit.txt

Поскольку группа захвата - это лишь малая часть большого регулярного выражения

Спасибо

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

Я нашел решение с $ {BASH_REMATCH [1]} и $ {BASH_REMATCH [2]}

0 голосов
/ 14 сентября 2018

sed тоже будет работать:

sed 's/.*\([0-9][0-9][0-9] [a-z][a-z][a-z]\).*/\1/' ./list.txt

Извините, мой старый виртуальный компьютер с Ubuntu, похоже, не поддерживает ярлыки \ d или \ w.

...