【问题标题】:extracting specific lines containing text and numbers from log file using awk使用 awk 从日志文件中提取包含文本和数字的特定行
【发布时间】:2016-12-08 14:06:49
【问题描述】:

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

文件结构如下:

code,client_id,local_timestamp,operation_code,error_code,etc

我只想提取文件中具有特定代码且正值 client_id 大于 0 的那些行。

例如,如果我有这些行:

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

我只想提取代码为 message_received 且为正的 client_id > 0 的行,只得到第一行:

message_received,1,134,20,0,xxx

我想使用 awk 有点像: awk '/message_received,[[:digit:]]&gt;0'/ my log.csv 我知道这不太正确.. 但是我如何在一个班轮中实现这一点?

【问题讨论】:

    标签: linux csv awk


    【解决方案1】:

    这可能就是你想要的:

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

    如果不是,请编辑您的问题以澄清。

    【讨论】:

    • 嗨,Ed 是的,完成了这项工作,谢谢! (很抱歉回复晚了......我使用 grep | awk 让它工作......但我很高兴你向我展示了我如何使用 awk 完成它):)
    猜你喜欢
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2021-05-07
    • 2019-05-20
    • 1970-01-01
    • 2015-12-18
    相关资源
    最近更新 更多