如何在sed中打印在给定时间间隔内生成的所有行

时间:2013-10-14 04:19:40

标签: sed

我必须打印从/ var / log / messages开始的所有行,这些行是在晚上11点之间生成的 午夜12点。 我用过这段代码

sed -n -e '/23:00:00/,/00:00:00/p' /var/log/messages

但是输出没有显示。我尝试了另一个时间间隔。只有在给出消息文件中的准确时间时才有效。

例如:sed -n -e '/23:50:01/,/23:59:09/p' /var/log/messages

请帮忙 谢谢

3 个答案:

答案 0 :(得分:1)

因为23:00:00没有显示在/ var / log / message中。

你可以试试这个:

sed -n -e '/23:[0-6][0-9]:[0-6][0-9]/, /00:[0-6][0-9]:[0-6][0-9]/p' /var/log/messages

答案 1 :(得分:0)

sed -n -r -e '/ (00:00:00|23:[0-6][0-9]:[0-6][0-9]) /p' /var/log/messages

如果您在00:00:00不需要这些消息,那么只需使用

即可
sed -n -e '/ 23:[0-6][0-9]:[0-6][0-9] /p' /var/log/messages

答案 2 :(得分:0)

您可以使用awk

尝试此操作
awk '$0>=from && $0<=to' from="23:00:00" to="00:00:00" /var/log/messages