我有以下文本文件,其中包含:
Environment: MS001
GATEWAY TEST: CV_ST
EXECUTION-RESULT: 0
GATEWAY TEST: CV_T2
EXECUTION-RESULT: 0
GATEWAY TEST: CVI_T
EXECUTION-RESULT: 0
Environment: MT01
GATEWAY TEST: S_C
EXECUTION-RESULT: 0
我想得到这个结果
Environment: MS001,GATEWAY TEST: CV_ST,EXECUTION-RESULT: 0
Environment: MS001,GATEWAY TEST: CV_T2,EXECUTION-RESULT: 0
Environment: MS001,GATEWAY TEST: CVI_T,EXECUTION-RESULT: 0
Environment: MT01,GATEWAY TEST: S_C,EXECUTION-RESULT: 0
基本上按环境对每个 gw 进行分组,我正在尝试这个,但我无法得到它
awk -F: '/^Environment/{ITM=$0} !/^Environment/{print ITM"=>"$0}'
如果该行以
Environment
开头,则将其存储在变量中。否则,它将打印最后存储的行和当前的两行,以逗号分隔:
awk '/^Environment/ {h=$0; next} {a=$0; getline; print h "," a "," $0}'
Environment: MS001,GATEWAY TEST: CV_ST,EXECUTION-RESULT: 0
Environment: MS001,GATEWAY TEST: CV_T2,EXECUTION-RESULT: 0
Environment: MS001,GATEWAY TEST: CVI_T,EXECUTION-RESULT: 0
Environment: MT01,GATEWAY TEST: S_C,EXECUTION-RESULT: 0
使用 mawk 1.3.4、nawk 20231228 和 GNU Awk 5.3.0 进行测试