2012-11-21 59 views
1

想要获得特定的小时数并保存输出。第一个小时是例如我的起点:如何将数据从一个字符串提取到另一个字符串并保存到输出中

Nov 20 13:42:52 host sendmail[14819]: qAKCgpxF014819: Milter: read returned -1: Connection reset by mail.yahoo.com 

我的终点就是:

Nov 20 16:22:23 host sendmail[16326]: qAKCgpxF016326: Milter: read returned -1: Connection reset by mail.yahoo.com 

我需要从我做起点的所有数据保存到我的终点到唯一的文件。

+0

你打算怎么做,在一行?或者你打算在某些步骤中做出 – 2012-11-21 12:27:09

+0

实际上,我只需要从这个小时的开始到结束小时的输出,只需检查maillog并想从第一个点提取数据到另一个。 –

回答

1

如果记录按时间排序,你可以

sed -n '/^Nov 20 13:42:52/,/^Nov 20 16:22:23/p' input.log > output.log 

当心,如果有更多的记录与结束时间,只有第一个将被打印。你可以通过改进

sed -n '/start/,/end/{p;d};/end/p' 
+0

那就是我需要的, 谢谢。 –

1

为您工作吗? (未测试)

awk -F' |:' 'BEGIN{m="Nov";d=20;sh=13;eh=16}$1==m && $2==d && $3>=sh && $3<=eh' file 
相关问题