溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

shell中如何通過多個(gè)位置變量處理數(shù)據(jù)

發(fā)布時(shí)間:2021-10-18 14:10:07 來源:億速云 閱讀:152 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下shell中如何通過多個(gè)位置變量處理數(shù)據(jù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

cat dd.txt

courseId  startTime  endTime

107 1548471600  1548475200
337 1550455200  1550458800
337 1553306400  1553310000

如上所述,現(xiàn)在有一批數(shù)據(jù),需要通過courseId、startTime、endTime三個(gè)維度(三個(gè)變量)唯一確定一條數(shù)據(jù),然后以courseId分組進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。記得有位置變量可以實(shí)現(xiàn),不過很遺憾的是忘記了,只能對(duì)而求其次,換了一種方法實(shí)現(xiàn),如果有大神路過,還請(qǐng)指教

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

分組統(tǒng)計(jì)結(jié)果

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

以上是“shell中如何通過多個(gè)位置變量處理數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI