linux – 逐行读取并逐行打印匹配
发布时间:2020-12-13 19:27:14 所属栏目:Linux 来源:网络整理
导读:我是 shell脚本的新手,如果我能从下面的问题中得到一些帮助,那就太棒了. 我想逐行读取文本文件,并将该行中所有匹配的模式打印到新文本文件中的一行. 例如: $cat input.txtSYSTEM ERROR: EU-1C0A Report error -- SYSTEM ERROR: TM-0401 DEFAULT Test errorS
我是
shell脚本的新手,如果我能从下面的问题中得到一些帮助,那就太棒了.
我想逐行读取文本文件,并将该行中所有匹配的模式打印到新文本文件中的一行. 例如: $cat input.txt SYSTEM ERROR: EU-1C0A Report error -- SYSTEM ERROR: TM-0401 DEFAULT Test error SYSTEM ERROR: MG-7688 DEFAULT error -- SYSTEM ERROR: DN-0A00 Error while getting object -- ERROR: DN-0A52 DEFAULT Error -- ERROR: MG-3218 error occured in HSSL SYSTEM ERROR: DN-0A00 Error while getting object -- ERROR: DN-0A52 DEFAULT Error SYSTEM ERROR: EU-1C0A error Failed to fill in test report -- ERROR: MG-7688 预期输出如下: $cat output.txt EU-1C0A TM-0401 MG-7688 DN-0A00 DN-0A52 MG-3218 DN-0A00 DN-0A52 EU-1C0A MG-7688 我尝试了以下代码: while read p; do grep -o '[A-Z]{2}-[A-Z0-9]{4}' | xargs done < input.txt > output.txt 产生了这个输出: EU-1C0A TM-0401 MG-7688 DN-0A00 DN-0A52 MG-3218 DN-0A00 DN-0A52 EU-1C0A MG-7688 ....... 然后我也尝试了这个: while read p; do grep -o '[A-Z]{2}-[A-Z0-9]{4}' | xargs > output.txt done < input.txt 但没有帮助:( 也许有另一种方式,我愿意接受awk / sed / cut或者其他…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |