如何用 bash 中的分号分隔的特定单词对数字求和



为了更具体地说明路径,例如我有如下文件;

文件.txt

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

我想使用 bash 按项目对数字求和作为结果;

文件.输出

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

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

提前谢谢。

尝试遵循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

最新更新