免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
1 [报告]
发表于 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
2 [报告]
发表于 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
3 [报告]
发表于 2008-03-20 20:13 |显示全部楼层
哈哈哈 我写的最麻烦。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP