我如何为这种模式而努力

时间:2014-06-06 08:52:00

标签: regex unix awk grep

我有一个包含此模式的多行的文件

20140604 02:05:51:142 INFO  M2F_F2M_Server - Number of messages in the Input Queue : "ANCDGBBBB" Count : 0
20140604 02:07:58:145 INFO  M2F_F2M_Server - Number of messages in the Input Queue : "ANCDGBBBB" Count : 8

我只想为" 20140604"日期以及计数!= 0

我尝试了以下命令

grep '20140604' | grep -v 'Count : 0' XYZ.dat .  But with no use. 

请帮忙

请注意,文件中还可能有其他日期条目,如' 20140607'但我关心的只是20140604。

我的示例输出应该只有:

20140604 02:07:58:145 INFO  M2F_F2M_Server - Number of messages in the Input Queue : "ANCDGBBBB" Count : 8

2 个答案:

答案 0 :(得分:3)

awk解决方案:

awk '$1==20140604 && $NF{print}' file

$1是第一个单词$NF(对应count)。

答案 1 :(得分:1)

您错过了将文件名XYZ.dat传递给您的第一个grep命令。如果你通过它,它应该工作。但是,您只需使用一个grep命令即可完成工作。像这样:

grep '^20140604.*Count : [^0].*$' XYZ.dat