Как напечатать следующие символы после поиска шаблона в Unix?

У меня есть куча файлов в папке, необходимо выполнить поиск по ключевым словам 'PO' и SUPP, чтобы напечатать следующие символы в выходном файле. Пожалуйста помоги.

файл 1:

PO 0962690   SUPP  212055    20180820000000   8709384 PO 0962693   SUPP  212059    20180820000000   8709384 ACDEF 123456 85 PO 123456

файл 2:

PO 0962709   SUPP  1527 20180820000000   8709403 

Ожидаемый результат:

0962690,212055
0962693,212059
123456,
0962709,1527

1 ответ

Решение
grep -hPo '\bPO\s+\d+(\s+SUPP\s+\d+)?' file* | awk -v OFS=, '{print $2,$4}'

или (даже) более загадочно

perl -nE 's/\bPO\s+(\d+)(?:\s+SUPP\s+(\d+))?/say "$1,$2"/ge' file
Другие вопросы по тегам