2017-06-12 95 views
0

我有一個gz文件,它包含$ 12和$ 33中的值,它們包含字符串(ex $ 12:33-A和$ 33:33A),我試圖創建一個awk命令值和計數的次數「 - 」是12美元,但不是13美元。awk命令比較字符串的差異

我:gzcat test.gz | awk '{if ($12!=$33 && $12~/ -/ && $33!~/ -/) wc -l; else null} | wc -l'

但該命令似乎沒有工作,我得到我想要的結果。

+0

向您的問題添加一個示例數據文件,其中有兩列顯示您的程序(也就是程序的非壓縮兩列版本)失敗並告訴我們您期望的結果。 – jas

+0

那麼,在你的'$ 12〜/ - /'中字符串「33-A」不匹配,因爲在連字符之前沒有空格... – twalberg

回答

2

沒有必要,因爲它暗示分別檢查平等,沒有必要使用wcawk能夠計數

... | awk '$12~/-/ && $33!~/-/{count++} END{print count+0}' 

PS的。您的腳本不是有效的awk腳本。也是字段3313

+0

很好地瞭解awk的功能,謝謝你的回答! – kastsabug

+0

'print count + 0'確保數字輸出即使沒有差異。 –

+0

是的,當然是固定的。 – karakfa