温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

shell中如何通过多个位置变量处理数据

发布时间:2021-10-18 14:10:07 来源:亿速云 阅读:156 作者:小新 栏目:开发技术

小编给大家分享一下shell中如何通过多个位置变量处理数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

cat dd.txt

courseId  startTime  endTime

107 1548471600  1548475200
337 1550455200  1550458800
337 1553306400  1553310000

如上所述,现在有一批数据,需要通过courseId、startTime、endTime三个维度(三个变量)唯一确定一条数据,然后以courseId分组进行数据统计。记得有位置变量可以实现,不过很遗憾的是忘记了,只能对而求其次,换了一种方法实现,如果有大神路过,还请指教

cat dd.sh
#!/bin/bash

username=account
passwd=mima
mysql -u$username -p$passwd -Bse "truncate table test.caidan"

while [ "1" = "1" ]
do
    id=`cat dd.txt | head -1 | awk '{print $1}'`
    start=`cat dd.txt | head -1 | awk '{print $2}'`
    end=`cat dd.txt | head -1 | awk '{print $3}'`
    num1=`mysql -u$username -p$passwd edusoho_e -Bse "SELECT COUNT(*) FROM course_member WHERE courseId=$id AND createdTime BETWEEN $start AND $end"`
    mysql -u$username -p$passwd -Bse "insert into test.caidan select $id,$num1"
    sed -i '1d' dd.txt
    num=`cat dd.txt | wc -l`
    if [ $num -eq 0 ];then
        exit
    fi
done

分组统计结果

SELECT id,SUM(num1) FROM `test`.`caidan` GROUP BY id ORDER BY NULL

以上是“shell中如何通过多个位置变量处理数据”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI