Как напечатать следующие символы после поиска шаблона в 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