我必须在两个标准上分割线,我用awk和它的分割函数做了它。awk与正则表达式的分割函数
以下是样本输入
|ERROR|ErrorHandler|[opName:Fulfill][msisdn:123][clientTrxId:[eventId:1][actionId:34]]|Failed delivery
下面我来分析它
grep ErrorHandler a.log | awk -F'|' '{split($3,a,"\[(.*?)\]"); print a[1]}'
我期待输出像 [opName:履行] 但它显示整条生产线
[opName:Fulfill][msisdn:123][clientTrxId:[eventId:1][actionId:34]]
其归因于上次]]。
如何修改我的正则表达式所以它解析像下面
[opName:Fulfill]
[msisdn:123]
[clientTrxId:[eventId:1][actionId:34]]
您无法像使用普通正则表达式那样处理匹配对。 –
任何替代建议,以实现这项任务 – ImranRazaKhan