cat z.txt
2017-02-06 21:27:43,100,3,9,2,2222223196 2017-02-06 21:27:46,101,3,11,2,2222223196 2017-02-06 21:27:43,100,3,9,2,2222223188 2017-02-06 21:27:43,100,3,9,2,2222223177
我有一个文件' z.txt'有上述记录, 我想查看field4的值为9的记录数。
有1个条件 - >如果'字段4具有值9'并且在另一个记录'字段4中具有值11' &安培;两者都具有相同的字段6.在这种情况下记录1& 2,具有相同的字段6,所以应该省略它们。
在我想要的输出中,仅在2个字段之下,对于唯一字段6,在字段4中只有值9
2017-02-06 21:27:43,100,3,9,2,2222223188 2017-02-06 21:27:43,100,3,9,2,2222223177
我想用awk来实现这个目标。
答案 0 :(得分:0)
awk
救援!
$ awk -F, '$4==9 {v[$6]=$0}
a[$6]++ {delete v[$6]}
END {for(k in v) if(a[k]==1) print v[k]}' file
2017-02-06 21:27:43,100,3,9,2,2222223177
2017-02-06 21:27:43,100,3,9,2,2222223188
请注意,由于关联数组不会保留顺序,有多种方法可以修复它,但不确定它是值得的。