Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Bash上解析日志-每秒一个结果_Bash_Parsing_Logging - Fatal编程技术网

在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个字符,即 HH:mm:SS

> P>如果时间字段是唯一需要考虑的行,确定一条线是否与前一行不同,则可以使用Onelner-AWK:

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