第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AWK腳本,如果column1中的值重復,則求和多列

AWK腳本,如果column1中的值重復,則求和多列

慕萊塢森 2021-04-09 14:15:40
需要您的幫助來解決以下查詢。我想總結(jié)column3,column5,column6,column7,column9,column10的值(如果column1中的值重復)。還需要在輸出文件中將重復的行作為單行,并且還需要將column1的值放在輸出文件的第8列中輸入文件a|b|c|d|e|f|g|h|i|jIN27201800024099|a|2.01|ad|5|56|6|rr|1|5IN27201800023963|b|3|4|rt|67|6|61|ty|6IN27201800024099|a|4|87|ad|5|6|1|rr|7.45IN27201800024099|a|5|98|ad|5|6|1|rr|8IN27201800023963|b|7|7|rt|5|5|1|ty|56IN27201800024098|f|80|67|ty|6|6|1|4rght|765輸出文件a|b|c|d|e|f|g|h|i|j|kIN27201800024099|a|11.01|190|ad|66|18|3|rr|20.45|IN27201800024099IN27201800023963|b|10|11|rt|72|11|62|ty|62|IN27201800023963IN27201800024098|f|80|67|ty|6|6|1|4rght|765|IN27201800024098在下面的代碼中嘗試過,但是它不起作用,也不知道如何完成代碼以獲取正確的輸出awk 'BEGIN {FS=OFS="|"} FNR==1 {a[$1]+= (f3[key]+=$3;f5[key]+=$5;f6[key]+=$6;f7[key]+=$7;f9[key]+=$9;f10[key]+=$10;)} input.txt > output.txt
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經(jīng)驗 獲得超6個贊

$ cat tst.awk

BEGIN {

    FS=OFS="|"

}

NR==1 {

    print $0, "h"

    next

}

{

    keys[$1]

    for (i=2; i<=NF; i++) {

        sum[$1,i] += $i

    }

}

END {

    for (key in keys) {

        printf "%s", key

        for (i=2; i<=NF; i++) {

            printf "%s%s", OFS, sum[key,i]

        }

        print OFS key

    }

}


$ awk -f tst.awk file

a|b|c|d|e|f|g|h

IN27201800023963|10|11|72|11|62|62|IN27201800023963

IN27201800024098|80|67|6|0|1|765|IN27201800024098

IN27201800024099|11.01|190|66|18|3|20.45|IN27201800024099

上面的代碼以隨機順序輸出行,如果您希望它們以與讀入鍵值相同的順序輸出,那只是幾行代碼:


$ cat tst.awk

BEGIN {

    FS=OFS="|"

}

NR==1 {

    print $0, "h"

    next

}

!seen[$1]++ {

    keys[++numKeys] = $1

}

{

    for (i=2; i<=NF; i++) {

        sum[$1,i] += $i

    }

}

END {

    for (keyNr=1; keyNr<=numKeys; keyNr++) {

        key = keys[keyNr]

        printf "%s", key

        for (i=2; i<=NF; i++) {

            printf "%s%s", OFS, sum[key,i]

        }

        print OFS key

    }

}


$ awk -f tst.awk file

a|b|c|d|e|f|g|h

IN27201800024099|11.01|190|66|18|3|20.45|IN27201800024099

IN27201800023963|10|11|72|11|62|62|IN27201800023963

IN27201800024098|80|67|6|0|1|765|IN27201800024098


查看完整回答
反對 回復 2021-04-16
  • 1 回答
  • 0 關(guān)注
  • 357 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號