我使用egrep
搜索有错误的日志文件,它输出了一堆文件。我想要做的是操纵这些弦,以一种不同的方式呈现。
/abcd/efgh/ijkl/logs/fac_unet_abp99507.log.20220708111219.26476752.0
/abcd/efgh/ijkl/logs/fac_oxf_abp3506.log.20220708111219.26476752.0
/abcd/efgh/ijkl/logs/cirrus_abp4296EI_20220824.log
/abcd/efgh/ijkl/mcr/logs/prof_cmcr_abp4296MR.log.20220824150526.15728964.0
输出应如下所示:
ABP99507,UNET
ABP3506,OXF
ABP4296EI,CIRRUS
ABP4296MR,CMCR
我尝试了awk
和sed
,但想不出一种方法。我希望能够使它成为动态的,并通过正则表达式来实现。
到目前为止,我所尝试的是:
egrep -li "^error" /abcd/efgh/ijkl/logs/*202207* | awk '/unet|cirrus|oxf|csp|cmcd|cmcr|nice/ {print}'
egrep -li "^error" /abcd/efgh/ijkl/logs/*202207* | sed -n "s/.*(cirrus|unet|cmcr|csp|cmcd|oxf|nice)(abp[0-9]*[A-ZA-Za-za-z]*).*/1,2/p"
SED不起作用,因为"|"
操作符被视为文本;我没有使用GNU版本。即使是逃脱也行不通。而且,我似乎不能利用捕获组。
暂无答案!
目前还没有任何答案,快来回答吧!