我收到了一些包含以下数据的文件:
1:Bob A :Tester
2:John B :Assembler
我使用此代码在此文件上使用awk:
BEGIN{
print"ABC Computing"
FS = ":"
}
# $1 - id , $2 - name, $3 - position.
NF == 3{
nameArray[$1]+=$2
}
END{
for (x in nameArray )
{print x, nameArray[x]}
}
我得到的输出是:
ABC Computing
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
我需要这样的东西:
1 Bob A
2 John B
我无法将字符串部分存储在数组中。
谢谢
答案 0 :(得分:0)
代码中的这一行nameArray[$1]+=$2
会将0
添加到第二个字段值(字符串),每次都会0
应该如下:
awk -F':' 'BEGIN{print "ABC Computing"}NF==3{a[$1]=$2}END{for(i in a) print i,a[i]}' file
输出:
ABC Computing
1 Bob A
2 John B