免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1522 | 回复: 3

[文本处理] 根据要求显示得到的值 [复制链接]

论坛徽章:
3
操作系统版块每日发帖之星
日期:2016-05-28 06:20:0015-16赛季CBA联赛之上海
日期:2017-07-21 18:35:3315-16赛季CBA联赛之广夏
日期:2018-01-29 10:58:57
发表于 2017-08-18 16:33 |显示全部楼层

redis-cli hgetall abs:type:2017081816
file1:

111
123456
222
234567
333
345678
444
456789
555
567891
666
678912

以单数行过滤对应的双数行,(例如:111 : 123456),没过一小时 "abs:type:2017081816" 变换一次,双数的值1分钟变化一次,单数的值只要出来,本小时就不会消失

要求,需要让本分钟的值减去上一分钟的值,获取差值,如果是0分,则显示获取到的值

论坛徽章:
3
操作系统版块每日发帖之星
日期:2016-05-28 06:20:0015-16赛季CBA联赛之上海
日期:2017-07-21 18:35:3315-16赛季CBA联赛之广夏
日期:2018-01-29 10:58:57
发表于 2017-08-18 16:34 |显示全部楼层
#!/bin/bash
message_file="/usr/local/zabbix/scripts/message/type/message.txt"                        
message_type_file="/usr/local/zabbix/scripts/message/type/message_type_file.txt"         
now_time=`date +"%Y%m%d%H"`                                                
new_judge_time=`date +"%M"`                                               
old_judge_time=`date -d"-1 min" +"%M"`                                    
if [ ! -e $message_file ];then                                             
    touch $message_file
    if [ ! -e $message_type_file ];then
        touch $message_type_file
    fi
fi
message_type () {
message=`redis-cli  absrmmct:type{now_time} > ${message_file}`  
message_type=`sed -n 'p;n' ${message_file} > ${message_type_file}`            
echo '{'
echo '        "data":['
total=`cat ${message_type_file} | wc -l`
cc=1
while read line
do
    if [ $total -ne $cc ];then
        echo  -n "                "
        echo   \{
        echo  -n "                        "
        echo   \"\{\#MESSAGE_TYPE\}\"\:\"$line\"\}\,                              
    else
        echo  -n "                "
        echo   \{
        echo  -n "                        "
        echo   \"\{\#MESSAGE_TYPE\}\"\:\"$line\"\}\]\}
    fi
    ((cc++))
done < ${message_type_file}
}

message_type_num () {
sleep 4
num_new_file="/usr/local/zabbix/scripts/message/type/${1}_num_${new_judge_time}.txt"     
num_old_file="/usr/local/zabbix/scripts/message/type/${1}_num_${old_judge_time}.txt"        
if [ ! -e ${num_new_file} ];then
        touch $num_new_file
fi
num=`grep -A 1 $1 ${message_file} | sed -n "2p"`                        
if [ -z ${num} ];then                                                      
        echo "0"
else
        if [ ${new_judge_time} -eq "00" ] && [ ! -e ${num_old_file} ] || [ ! -e ${num_old_file} ];then         
                echo ${num} > $num_new_file
                echo ${num}
        else                                                                    
                echo ${num} > $num_new_file
                count_one=`cat ${num_new_file}`
                count_two=`cat ${num_old_file}`
                count_result=`expr $count_one - $count_two`
                echo ${count_result}
        fi
fi
}

论坛徽章:
3
操作系统版块每日发帖之星
日期:2016-05-28 06:20:0015-16赛季CBA联赛之上海
日期:2017-07-21 18:35:3315-16赛季CBA联赛之广夏
日期:2018-01-29 10:58:57
发表于 2017-08-18 16:36 |显示全部楼层
2楼是我写的shell,但是有时候会得到负数,是我哪里写的有问题吗

论坛徽章:
3
操作系统版块每日发帖之星
日期:2016-05-28 06:20:0015-16赛季CBA联赛之上海
日期:2017-07-21 18:35:3315-16赛季CBA联赛之广夏
日期:2018-01-29 10:58:57
发表于 2017-08-18 16:40 |显示全部楼层
额,要求还有一点忘记说了,就是如果本小时出现的单数值在下个小时没有出来,则返回0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP