[英]AWK command for sum 2 files
我是awk的新手,如果發現同一列,我需要awk命令來匯總2個文件
文件1
a | 16:00 | 24
b | 16:00 | 12
c | 16:00 | 32
文件2
b | 16:00 | 10
c | 16:00 | 5
d | 16:00 | 14
並且輸出應該是
a | 16:00 | 24
b | 16:00 | 22
c | 16:00 | 37
d | 16:00 | 14
我在這里閱讀了一些問題,但仍然找到正確的方法,我已經嘗試過使用此命令
awk 'BEGIN { FS = "," } ; FNR=NR{a[$1]=$2 FS $3;next}{print $0,a[$1]}'
請幫助我,謝謝
這個指令碼也使用了sort
但可以運作
awk -F'|' ' { f[$1] += $3 ; g[$1] = $2 } END { for (a in f) { print a , "|", g[a] , "|", f[a] } } ' a.txt b.txt | sort
結果是
a | 16:00 | 24
b | 16:00 | 22
c | 16:00 | 37
d | 16:00 | 14
無|sort
awk -F'|' '{O[$1FS$2]+=$3}END{asorti(O,T,"@ind_str_asc");for(t in T)print T[t] FS O[T[t]]}' file[1,2]
只需將所有數據存儲在兩個數組a[]
和b[]
,然后將它們打印回來:
awk 'BEGIN{FS=OFS="|"}
{a[$1]+=$3; b[$1]=$2}
END{for (i in a) print i,b[i],a[i]}' f1 f2
$ awk 'BEGIN{FS=OFS="|"} {a[$1]+=$3; b[$1]=$2} END{for (i in a) print i,b[i],a[i]}' f1 f2
b | 16:00 |22
c | 16:00 |37
d | 16:00 |14
a | 16:00 |24
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.