给定的时间区间提取目标行
- start="2011 09 07 09 30 00"
- end="2011 09 07 10 00 59"
- awk '$1~/ERROR/{ print $0} ' catalina.out | awk -F '[-: ]+' -v s="$start" -v e="$end" 'mktime($2" "$3" "$4" "$5" "$6" "substr($7,1,2))>=mktime(s)&&mktime($2" "$3" "$4" "$5" "$6" "substr($7,1,2))<=mktime(e)'
提取时间段--------------搞了很久在别人提醒下,直蛋疼.....................
- #!/bin/bash
- start="2011 09 07 09 30 00"
end="2011 09 07 10 00 59"
- awk -F '[-: ]+' -v s="$start" '{ if ( $1~/ERROR/ && mktime($2" "$3" "$4" "$5" "$6" "substr($7,1,2))
- >=mktime(s)) print NR
}' catalina.out > tmp1
- awk -F '[-: ]+' -v e="$end" '{ if ( $1~/ERROR/ && mktime(e)>=mktime($2" "$3" "$4" "$5" "$6"
- "substr($7,1,2))) print NR }
' catalina.out > tmp2
- t1=`head -n 1 tmp1`
t2=`tail -n 1 tmp2`
- sed -n ''$t1','$t2'p' catalina.out
rm -rm tmp1
rm -rm tmp2
阅读(1164) | 评论(0) | 转发(0) |