日常分享-shell脚本之mongodb导出与数据处理

工作中有这样的小需求,将mongodb的库表导出,分析用户表的用户名字段提取,生成文件。

读取用户列表,然后和每个用户的xml文件比较,读取字段type字段大于0的用户,重新生成一个新用户列表。

先看第一部分,导出mongodb库表,库名:app_dict, 表名:users,  端口:25000这个是mongos的端口 ,mongoexport是mongodb自带的工具,代码如下:

/home/app/bin/mongoexport --host 10.11.1.105 --port 25000 -d app_dict -c users -q='{}' -f id -o /home/app/all.lst
cat /home/app/all.lst|awk -F'001_' '{print $2}'|awk -F'"' '{print $1}' > /home/app/all.1.lst
rm -f /home/app/all.lst

再看看第二部分:

rule="000001"
enow=`date "+%Y%m%d000000"`
echo $enow

cat all.1.lst|while read line
do
        result=`cat /home/app/bin/$line.xml|grep remindType`
        if [ "$result" == "" ]; then
                echo $line" disabled no remindtype"
        else

                #echo -e $line" "$result
                echo $line" ""$result"
                type=`echo $result|awk -F'<' '{print $2}'|awk -F'>' '{print $2}'`
                if [[ "$type" > 0 ]]; then
                     echo $line" enable"
                     echo $line" "$enow" "$rule >>/home/app/flter_user1.lst
                     #echo $result" "$enow" "$rule >/home/app/var/custom_users/flter_user.lst
                else
                     echo $line" ""disable type=0 "$result1
                fi

        fi
done

这段代码主要注意的几个点如下:

  • 字符串比较:
if [ "$result" == "" ];
  • 数值比较

     

if [[ "$type" > 0 ]]

其他的没有什么了。又可以快乐玩耍了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值