用户确定线程号qth和时间范围[qst, qet];
读入文本文件;
将有效行标志位vline设为false;
读入第一行数据,判断是否为日志输出;
若是:提取线程号thread_no和时间cur_time,将vline设为true;
否则:
若vline=true,输出该行
否则忽略该行;
若线程号不是qth 忽略该行;
若cur_time<qst忽略该行;
输出本行数据,循环读入下一行文本;
用grep -n定位起始位置,awk先判断时间范围,再判断线程号,当时间超出上限时,直接退出(close),不必读后续行(next)。
echo "Please input thread number:" read qth echo "Please input start time:" read qst echo "Please input end time:" read qet
echo $qth
awk 'BEGIN{ isLogLine=0; qth='"\(qth"'; qst='"\)qst"'; qet='"\(qet"'; } { if(substr(\)3,2,7)=="thread_"){ #检查是否为日志输出列
thread_no=substr(\(3,9,length(\)3)-9); if(thread_no==qth){ print "the thread is in line:" print NR } } }' logex