我的文件夹中有一堆文件,需要使用关键字“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