我有一個大的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