2017-06-12 94 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