awk命令:将某一列、行的数值相加。去除列中重复值,重复行

1.将某一列的数值想加

利用awk命令 awk '{print $n}' | awk '{sum+=$1}END{print sum}'

awk '{print $1}' | awk '{sum+=$1}END{print sum}'

例:

awk命令:将某一列、行的数值相加。去除列中重复值,重复行_第1张图片

2.将行的数值想加

awk '{sum=0;for (i=1;i<4;i++){sum+=$i}print sum}'   (i 小于 列+1数)

awk '{sum=0;for (i=1;i<4;i++){sum+=$i}print sum}'

awk命令:将某一列、行的数值相加。去除列中重复值,重复行_第2张图片

3.统计第n列所有的值及数量(去掉每列的重复值,并输出对应数量)

   命令:awk '{a[$n]++}END{for (i in a)print i,a[i]}'

awk '{a[$1]++}END{for (i in a)print i,a[i]}'
[root@localhost ~]# cat number.sh 
1 2 3 4 5 6
1 2 4 6 8 7
2 4 5 7 9 8
11 5 3 8 5 6
[root@localhost ~]# cat number.sh |awk '{a[$1]++}END{for (i in a)print i,a[i]}'
11 1
1 2
2 1
[root@localhost ~]# cat number.sh |awk '{a[$5]++}END{for (i in a)print i,a[i]}'
5 2
8 1
9 1

3.2.统计第n列所有的值,去掉重复值(去掉每列的重复值)

    命令:awk '{if(!a[$n]++) print $n}'

awk '{if(!a[$1]++) print $1}'
[root@localhost ~]# cat number.sh |awk '{if(!a[$1]++) print $1}'
1
2
11
[root@localhost ~]# cat number.sh |awk '{if(!a[$5]++) print $5}'
5
8
9

3.3 按照第n列的值去除重复项,并输出第一次出现的所在行

命令:

awk '{if(!($n in a)){a[$n];print}}'
[root@localhost ~]# cat number.sh |awk '{if(!($1 in a)){a[$1];print}}'
1 2 3 4 5 6
2 4 5 7 9 8
11 5 3 8 5 6
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# cat number.sh |awk '{if(!($5 in a)){a[$5];print}}'
1 2 3 4 5 6
1 2 4 6 8 7
2 4 5 7 9 8

5.去掉重复行

命令:awk '{if(!(a[$0]++)){a[$0];print}}'

awk '{if(!(a[$0]++)){a[$0];print}}'
[root@localhost ~]# cat number.sh 
1 2 3 4 5 6
1 2 3 4 5 6
1 2 4 6 8 7
2 4 5 7 9 8
11 5 3 8 5 6
1 2 3 4 5 6
[root@localhost ~]# cat number.sh |uniq
1 2 3 4 5 6
1 2 4 6 8 7
2 4 5 7 9 8
11 5 3 8 5 6
1 2 3 4 5 6
# uniq 命令只能去除相邻的重复行
[root@localhost ~]# cat number.sh |awk '{if(!(a[$0]++)){a[$0];print}}'
1 2 3 4 5 6
1 2 4 6 8 7
2 4 5 7 9 8
11 5 3 8 5 6

你可能感兴趣的:(报错解决&技巧方法,Linux命令详解,linux,awk)