根据日期和时间输出特定行

时间:2013-08-12 23:35:32

标签: unix logging sed awk grep

我非常喜欢Linux,我正试图找到一种方法来自动化我的数据挖掘过程,因为有很多值我需要排序。我目前有一个日志文件,格式如下:

YYYY-MM-DD HH:MM:SS
Sensor0 Temperature (Equation 1) is <Value0> Celsius
Sensor1 Temperature (Equation 1) is <Value1> Celsius
Sensor2 Temperature (Equation 1) is <Value2> Celsius
Sensor3 Temperature (Equation 1) is <Value3> Celsius

程序每5秒以此格式吐出这些值。我真正想要做的是找到一种方法来处理这个日志文件和另一个日志文件,该日志文件只包含我根据日期和时间需要的4个传感器值。

目前,我可以使用sed过滤短语,将文件处理为以下格式。

YYYY-MM-DD HH:MM:SS 
<Value0>
<Value1>
<Value2>
<Value3>

如何通过搜索特定日期和时间输出这4个值?我有一个单独的日志文件,其中包含我运行的角落循环的所有时间戳,我在搜索温度值时将其用作参考。该文件的格式为:

YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS

在最终处理的输出中,我希望内容使用角落指定的时间戳显示以下内容:

Date, Time, Sensor0, Sensor1, Sensor2, Sensor3
YYYY-MM-DD, HH:MM:SS, <Value0>, <Value1>, <Value2>, <Value3>

1 个答案:

答案 0 :(得分:0)

如果你想要在2013年7月00:00:00举办所有活动:

egrep "2013-07-.. 00:00:00" -A 4 /var/log/temp.log

在文件/var/log/temp.log中查找与“2013-07- .. 00:00:00”匹配的所有行,并在输出中包含接下来的4行(-A 4) / p>