在Bash上解析日志-每秒一个结果
我为这个简单的问题花了好几天时间,无法独处 我有一个日志,每秒有几行。我每秒只需要一行,哪一行不重要 日志示例:在Bash上解析日志-每秒一个结果,bash,parsing,logging,Bash,Parsing,Logging,我为这个简单的问题花了好几天时间,无法独处 我有一个日志,每秒有几行。我每秒只需要一行,哪一行不重要 日志示例: 23:59:58 Incoming packet DeviceId:42FF223F23AC 23:59:58 Incoming packet DeviceId:42FF223F23AC 23:59:58 Incoming packet DeviceId:42FF223F23AC 23:59:59 Incoming packet DeviceId:42FF223F23AC 23
23:59:58 Incoming packet DeviceId:42FF223F23AC
23:59:58 Incoming packet DeviceId:42FF223F23AC
23:59:58 Incoming packet DeviceId:42FF223F23AC
23:59:59 Incoming packet DeviceId:42FF223F23AC
23:59:59 Incoming packet DeviceId:42FF223F23AC
23:59:59 Incoming packet DeviceId:42FF223F23AC
我需要这个:
23:59:58 Incoming packet DeviceId:42FF223F23AC
23:59:59 Incoming packet DeviceId:42FF223F23AC
我尝试了cat log | uniq-w8
,但不起作用
我很抱歉我的英语-它不是我的母语。
另一种脚本语言(如PHP、Python)上的P.S.解决方案也很好这应该可以做到:
cat inputFile | sort | uniq -w8
或
<代码> UNIQ只比较前8个字符,即
awk -F ' ' '{if ($1 != time_prev) {print $0;} time_prev=$1}' < yourfile.txt
awk-F'{if($1!=time\u prev){print$0;}time\u prev=$1}'
这样做可以吗cat输入文件| sort | uniq-w8
?sort+uniq-u不起作用:(它确实适用于您提供的示例,请您的问题反映出来。您提供的输入在末尾有空格,只有2nd
行没有空格。因此sort-u您的\u输入文件
没有给出预期的答案,因为在此上下文中行1
和行2
是不同的。不需要Cat,sort inputFule | uniq-w8
也可以。无论如何,这就是解决方案。:)谢谢!这是一个解决方案:)
awk -F ' ' '{if ($1 != time_prev) {print $0;} time_prev=$1}' < yourfile.txt