我的文件有2列,如下所示....
101 6
102 23
103 45
109 36
101 42
108 21
102 24
109 67
依旧......
我想编写一个脚本,如果相应的第一列匹配
,则添加第二列的值for example add all 2nd column values if it's 1st column is 101
add all 2nd column values if it's 1st colummn is 102
add all 2nd column values if it's 1st colummn is 103 and so on ...
我这样写了我的剧本,但是我得不到正确的结果
awk '{print $1}' data.txt > col1.txt
while read line
do
awk ' if [$1 == $line] sum+=$2; END {print "Sum for time stamp", $line"=", sum}; sum=0' data.txt
done < col1.txt
答案 0 :(得分:3)
awk '{array[$1]+=$2} END { for (i in array) {print "Sum for time stamp",i,"=", array[i]}}' data.txt
答案 1 :(得分:3)
Pure Bash:
declare -a sum
while read -a line ; do
(( sum[${line[0]}] += line[1] ))
done < "$infile"
for index in ${!sum[@]}; do
echo -e "$index ${sum[$index]}"
done
输出:
101 48
102 47
103 45
108 21
109 103