如何从一个字符串中提取数据到另一个字符串并保存到输出

时间:2012-11-21 12:20:04

标签: sed awk grep tr

希望获得另一个特定时间并保存输出。第一个小时是我的起点,例如:

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

我需要将所有数据从起点保存到结束点。

2 个答案:

答案 0 :(得分:1)

这对你有用吗? (没有测试)

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

答案 1 :(得分: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'