我有一个大的TXT文件(“”作为分隔符)的特定字符:大TXT使用awk来提取一些数据和字符串字段
2014:04:29:00:00:58:GMT: subject=BMRA.BM.T_GRIFW-1.FPN, message={SD=2014:04:29:00:00:00:GMT,SP=5,NP=3,TS=2014:04:29:01:00:00:GMT,VP=4.0,TS=2014:04:29:01:29:00:GMT,VP=4.0,TS=2014:04:29:01:30:00:GMT,VP=3.0}
2014:04:29:00:00:59:GMT: subject=BMRA.BM.T_GRIFW-2.FPN, message={SD=2014:04:29:00:00:00:GMT,SP=5,NP=2,TS=2014:04:29:01:00:00:GMT,VP=3.0,TS=2014:04:29:01:30:00:GMT,VP=3.0}
我想找到包含“T_GRIFW线',然后从“主题”开始打印$ 1字段,仅打印时间并从$ 2开始浮动。此外,我想包含一个if语句,以便如果字段$ 4 =='NP = 3',只有字段$ 5,$ 6,$ 9,$ 10被打印在前面的字段之后,并且如果$ 4 =='NP = 2'字段印刷(时间和仅浮)
例如,两个取样管的结果将是:
subject=BMRA.BM.T_GRIFW-1.FPN,2014:04:29:00:00:00,5,3,2014:04:29:01:00:00,4.0,2014:04:29:01:30:00,3.0
subject=BMRA.BM.T_GRIFW-2.FPN,2014:04:29:00:00:00,5,2,2014:04:29:01:00:00,3.0,2014:04:29:01:30:00,3.0
我知道这是复杂的,我已经尽了最大努力,在我的描述透彻。到目前为止,我的基本代码是:
awk 'BEGIN {FS=","}{OFS=","} /T_GRIFW-1.FPN/ {print $1}' tib_messages.2014-04-29
感谢一位!
不多你到目前为止。更加努力! – hek2mgl
你的输出没有意义,因为它不符合你的条件。你说如果'NP = 3',那么只有字段$ 5,$ 6,$ 9,$ 10应该打印。 – ooga
嗨Ooga,对于含糊不清,我的意思是后来只有5美元,6美元,9美元,10美元应该打印。 – user2013373