shell-awk列別合計
1410 ワード
**
shell awk和第1列が同時に対応する第2列が加算される
#
Shellではawkで列ごとの和を求める機能を実現でき、非常に簡単です.
1.簡単に列ごとに和を求める
# cat num.txt | awk '{sum += $1} END {print sum}'
2.ある条件を満たす行に対して、列によって合計する
# cat num.txt | awk '/aaa/ {sum += $1} END {print sum}'
shell awk和第1列が同時に対応する第2列が加算される
#
awk
'{sum[$1]+=$2}END{for(c in sum){print c,sum[c]}}'
Shellではawkで列ごとの和を求める機能を実現でき、非常に簡単です.
1.簡単に列ごとに和を求める
# cat num.txt | awk '{sum += $1} END {print sum}'
2.ある条件を満たす行に対して、列によって合計する
# cat num.txt | awk '/aaa/ {sum += $1} END {print sum}'
3. : cat you.txt |awk '{a+=$1}END{print a}'
4. :cat you.txt |awk '{a+=$1}END{print a/NR}'
5. :cat you.txt |awk 'BEGIN{a=0}{if ($1>a) a=$1 fi}END{print a}'
0, , , 。
6. :cat you.txt |awk 'BEGIN{a=11111}{if ($1 の も の を めます:testを めます.txtの 12 34 56 78 24 65 87 90 76 11 67 87 100 89 78 99 for i in`cat test.txt` ;do echo $i; done |sort |sed -n '1p;2 p′ 2: じくtest.txt を める:for i in`cat you.txt`;do echo $i ;done|awk'{a+=$1}END{print a}' 3:A 88 B 78 B 89 C 44 A 98 C 433 :
A:88;98 B:78;89 C:44;433 awk '{a[$1]=a[$1]" "$2}END{for(i in a)print i,a[i]}' test.txt |awk '{print $1":",$2";",$3}' :https://blog.51cto.com/wangqh/2083116