如何在bash

时间:2017-08-15 07:11:14

标签: bash awk

更具体的路径,例如我有文件如下;

file.txt的

apple;10;
tomato;5;
apple;5;
banana;10;
banana;5;
tomato;10;
banana;10;
apple;5;

我希望使用bash作为结果对项​​目进行求和;

file.output

apple;20;
banana;25;
tomato;15;

另一个词是我需要简化文件。如何在bash中将这种输出作为单独的文件实现?

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试跟随awk,如果你需要输出与Input_file相同的顺序,那么下面的内容可以帮助你。

awk -F";" '!a[$1]{b[++i]=$1} {a[$1]+=$2;} END{for(j=1;j<=i;j++){print b[j] FS a[b[j]] FS}}'  Input_file

输出如下。

apple;20;
tomato;15;
banana;25;

如果您根据Input_file不打扰序列,那么您可以尝试以下操作:

awk -F";" '{a[$1]+=$2;} END{for(i in a){print i FS a[i] FS}}'  Input_file