使用 Linux 工具根据另一列的 id 对一列的值求和

发布于 2024-10-25 23:56:11 字数 408 浏览 6 评论 0原文

我有一个用几个字段分隔的文件。我知道如何选择一个特定的字段并单独求和,但想知道是否有一种使用 linux 实用程序执行此操作的干净方法,否则我将在 C 中执行此操作。

我正在谈论的一个示例:

FILE (还有更多字段,但这些是对本例唯一重要的字段):

1 36
2 96
5 84422
2 2
1655

所以,对于这个小例子,我想要:

1 691
2 98
5 84422

我不确定是否真的值得尝试使用 Linux 实用程序,但由于我正在尝试使用这些工具扩展我的知识,我想我会问它是否 1.) 可能,2.) 实用。

I have a file that is ' ' delimetered with a few fields. I know how to select a specific field and sum that by itself, but was wondering if there was a clean way of doing this using the linux utilities, otherwise I will do it in C.

An example of what I am talking about:

FILE (there are more fields, but these are the only ones that matter for this case):

1 36
2 96
5 84422
2 2
1 655

So, for this small example I would want:

1 691
2 98
5 84422

I am not sure if it is really worth trying to do using linux utilities, but since I am trying to expand my knowledge using those tools I figured I would ask if it was 1.) possible, 2.) practical.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生活了然无味 2024-11-01 23:56:11
$ perl -ne '/ /; $x{}+=
\''; END { print "$_ $x{$_}\n" foreach keys %x; }' <<__END__
> 1 36
> 2 96
> 5 84422
> 2 2
> 1 655
> __END__
1 691
2 98
5 84422
$ perl -ne '/ /; $x{}+=
\''; END { print "$_ $x{$_}\n" foreach keys %x; }' <<__END__
> 1 36
> 2 96
> 5 84422
> 2 2
> 1 655
> __END__
1 691
2 98
5 84422
慈悲佛祖 2024-11-01 23:56:11
awk '{ a[$1] += $2 } END { for (i in a) { print i " " a[i] } }' input.txt | sort -n
awk '{ a[$1] += $2 } END { for (i in a) { print i " " a[i] } }' input.txt | sort -n
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文