免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: 勒色
打印 上一主题 下一主题

如何截取规定时间内的文本内容 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2008-03-20 18:33 |只看该作者
原帖由 gzkaka 于 2008-3-20 18:26 发表
gawk '
BEGIN{
FS="|";
total=0;
status0=0;
status1=0;
currentTime=systime();
}

{
if(($1>=strftime("%H:%M:%S",currentTime-300))&&($1



gzkaka所言及时,这个脚本刚才我调试了,非常好用!

前面几位前辈的思路也帮了不少忙,总而言之还是谢谢大家了!

论坛徽章:
0
22 [报告]
发表于 2008-03-20 18:34 |只看该作者
路过,学习一下AWK的内置函数........

论坛徽章:
0
23 [报告]
发表于 2008-03-20 20:09 |只看该作者
#!/bin/sh

Mintime=`awk -F\|  '{split($1,my,":";print my[1]":"my[2]}'  test.sh | head -1`
MinHour=`awk -F\|  '{split($1,my,":";print my[1]":"my[2]}'  test.sh | head -1 | awk -F\: '{print $1}'`
Minmon=`awk -F\|  '{split($1,my,":";print my[1]":"my[2]}'  test.sh | head -1 | awk -F\: '{print $2}'`
Maxtime=`awk -F\|  '{split($1,my,":";print my[1]":"my[2]}'  test.sh | tail -1`
MaxHour=`awk -F\|  '{split($1,my,":";print my[1]":"my[2]}'  test.sh | tail -1 | awk -F\: '{print $1}'`
Maxmon=`awk -F\|  '{split($1,my,":";print my[1]":"my[2]}'  test.sh | tail -1 | awk -F\: '{print $2}'`


while  [ "$MinHour" -le "$MaxHour" ]
do
        M=`expr $Minmon + 5`
        Y=`expr $M - 1`
                if [ "$M" -gt "60" ]
                        then
                                X=`expr $MinHour + 1`
                                T=`expr $M - 61`
                                tocls=`awk -F\| '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Xt":"0TT":"59""print $0}' Min=$MinHour mon=$Minmon TT=$T Xt=$X test.sh | wc -l`
                                NUM0=`awk -F\| '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Xt":"0TT":"59"" && $NF == 0)print $0}' Min=$MinHour mon=$Minmon TT=$T Xt=$X test.sh  | wc -l`
                                NUMNOT0=`awk -F\| '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Xt":"0TT":"59"" && $NF != 0)print $0}' Min=$MinHour mon=$Minmon TT=$T Xt=$X test.sh  | wc -l`
                                echo "行数为tocls"
                                echo "行尾为0NUM0"
                                echo "行尾不为0NUMNOT0"


#新的赋值
                MinHour=$X
                Minmon=`expr $M - 60`

if [ "$Minmon" -gt "$Maxmon" -a "$MinHour" -eq "$MaxHour" ]
        then
                exit;
fi


                elif [ "$M" -eq "60" ]
                        then
                                tocls=`awk -F\| '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Min":"59":"59""print $0}' Min=$MinHour mon=$Minmon test.sh | wc -l`
                                NUM0=`awk -F\| '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Min":"59":"59"" $NF == 0 )print $0}' Min=$MinHour mon=$Minmon test.sh | wc -l`
                                NUMNOT0=`awk -F\| '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Min":"59":"59"" $NF != 0 )print $0}' Min=$MinHour mon=$Minmon test.sh | wc -l`

                                echo "行数为tocls"
                                echo "行尾为0NUM0"
                                echo "行尾不为0NUMNOT0"

                MinHour=$X
                Minmon=0


  
                else
                                if [ "$M" -lt "15" ]
                                        then
                                                if [ "$Minmon" -le "5" ]
                                                        then
                                                tocls=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00"" && $1 <= ""Min":"0Yt":"59""print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                                NUM0=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00"" && $1 <= ""Min":"0Yt":"59"" && $NF == 0)print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                                NUMNOT0=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00"" && $1 <= ""Min":"0Yt":"59"" && $NF != 0 )print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`

                                echo "行数为tocls"
                                echo "行尾为0NUM0"
                                echo "行尾不为0NUMNOT0"




                                                elif [ "$Minmon" -eq  "5" ]
                                                        then
                                                tocls=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00" && $1 <= ""Min":"0Yt":"59"" )print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                                NUM0=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00" && $1 <= ""Min":"0Yt":"59"" && $NF == 0 )print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                                NUMNOT0=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00" && $1 <= ""Min":"0Yt":"59"" && $NF != 0 )print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`

                                echo "行数为tocls"
                                echo "行尾为0:$NUM0"
                                echo "行尾不为0:$NUMNOT0"
                                                else
                                                tocls=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00"" && $1 <= ""Min":"Yt":"59""print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                                NUM0=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00"" && $1 <= ""Min":"Yt":"59"" && $NF == 0)print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                                NUMNOT0=`awk -F\| '{if ( $1 >= ""Min":"0mon":"00"" && $1 <= ""Min":"Yt":"59"" && $NF != 0)print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                                fi
                                        else
                                        tocls=`awk -F\| '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Min":"Yt":"59"" ) print $0}' Min=$MinHour mon=$Minmon Yt=$Y  test.sh | wc -l`
                                        NUM0=`awk -F\|  '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Min":"Yt":"59""  && $NF == "0" ) print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                        NUMNOT0=`awk -F\| '{if ( $1 >= ""Min":"mon":"00"" && $1 <= ""Min":"Yt":"59""  && $NF != "0" ) print $0}' Min=$MinHour mon=$Minmon Yt=$Y test.sh | wc -l`
                                echo "行数为:$tocls"
                                echo "行尾为0:$NUM0"
                                echo "行尾不为0:$NUMNOT0"
                                fi

Minmon=`expr $M + 1`

if [ "$Minmon" -gt "$Maxmon" -a "$MinHour" -eq "$MaxHour" ]
        then
                exit;
fi



                fi





done

论坛徽章:
0
24 [报告]
发表于 2008-03-20 20:11 |只看该作者
test.sh的内容就是你的:
14:20:00|info|Thu Mar 20 14:20:00 CST 2008|register|1500899||0
14:20:00|info|Thu Mar 20 14:20:00 CST 2008|register|1359417||0
14:20:00|info|Thu Mar 20 14:20:00 CST 2008|register|1354708||0
14:22:58|info|Thu Mar 20 14:22:58 CST 2008|update_alias|1598338||0
14:23:21|info|Thu Mar 20 14:23:21 CST 2008|update_alias|1598338|elqy2000|0
14:25:00|info|Thu Mar 20 14:25:00 CST 2008|register|1394823||0
14:25:00|info|Thu Mar 20 14:25:00 CST 2008|unregister|1356789||301
14:40:00|info|Thu Mar 20 14:30:00 CST 2008|register|1388455||0
14:40:00|info|Thu Mar 20 14:30:00 CST 2008|register|1395833||0
14:40:00|info|Thu Mar 20 14:30:00 CST 2008|register|1595353||0
我还多加了2条:
14:59:00|info|Thu Mar 20 14:30:00 CST 2008|register|1595353||0
15:01:00|info|Thu Mar 20 14:30:00 CST 2008|register|1595353||1

论坛徽章:
0
25 [报告]
发表于 2008-03-20 20:13 |只看该作者
哈哈哈 我写的最麻烦。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP