Linux 使用awk从日志文件中提取包含文本和数字的特定行

Linux 使用awk从日志文件中提取包含文本和数字的特定行,linux,csv,awk,Linux,Csv,Awk,我已经有一段时间没有使用我的linux技能了,我正在努力从csv日志文件中提取某些行 该文件的结构如下: code,client_id,local_timestamp,operation_code,error_code,etc 我只想提取具有特定代码和大于0的正客户端id的文件行 例如,如果我有以下行: message_received,1,134,20,0,xxx<br> message_ack,0,135,10,1,xxx<br> message_received,

我已经有一段时间没有使用我的linux技能了,我正在努力从csv日志文件中提取某些行

该文件的结构如下:

code,client_id,local_timestamp,operation_code,error_code,etc
我只想提取具有特定代码和大于0的正客户端id的文件行

例如,如果我有以下行:

message_received,1,134,20,0,xxx<br>
message_ack,0,135,10,1,xxx<br>
message_received,0,140,20,1,xxx<br>
message_sent,1,150,30,0,xxx
我想使用awk,有点像:
awk'/message_received,[[:digit:]>0'/my log.csv
我知道这不太正确。。但是我如何在一行程序中实现这一点呢?

这可能就是您想要的:

awk -F, '($1=="message_received") && ($2>0)' mylog.csv

如果没有,请编辑您的问题以进行澄清。

您好,是的,这很好,谢谢!(很抱歉回复晚了…我用grep | awk实现了它…但我很高兴你向我展示了如何用awk实现它):)不客气。看看接下来要做什么。
awk -F, '($1=="message_received") && ($2>0)' mylog.csv