awk 实际小例子的使用
Fida Step-in Dog Harness Superior Reflective Puppy Vest
60 59 58 57 56 50 49 48
59 47 26 47
50 20 56
59 58
49
50
26
上面是原始数据,我会利用awk工具,提供一定的整理和修改
将上面的数据为空的部分填充0
awk -F'\t' -vOFS='\t' '
{
for (column = 1; column <= NF; ++column) {
if ( !$column ) {
$column = 0
}
}
print
}' test.txt | column -t > aaa.txt
其中 column -t 按照单词进行对齐操作
统计每一行的数据和
awk 'NR!=1{sum=0;for(i=1;i<=NF;i++){
sum+=$i
}
;print $0 , sum}' aaa.txt
其中 NR!=1 表示不统计标题栏,即第一栏
统计每一列的数据和
awk '{for (i=1;i<=NF;++i)a[i]+=$i}
END {for (i=1;i<=NF;++i) printf a[i]",";print $NF}' aaa.txt
统计每一列的数据和,并按照列名作为key,值作为value的形式输出
awk 'BEGIN{print $NF} {
if (NR==1) {
for (i=1;i<=NF;++i) {
a[i] = $i
}
} else {
for (i=1;i<=NF;++i) b[i]+=$i
}
} END {for (i=1;i<=NF;++i) print a[i]":"b[i]}' aaa.txt
根据行排列进行数据统计
原始数据
Fida:60
Step-in:59
Dog:226
Harness:307
Superior:56
Reflective:50
Puppy:75
Vest:151
awk '{a[$1]+=$2;} END {for (i in a) print i ":" a[i];}' bbb.txt
参考: AWK 简明教程