sách gpt4 ai đã đi

按计数分组的 bash 命令

In lại 作者:行者123 更新时间:2023-11-29 09:10:52 25 4
mua khóa gpt4 Nike

我有一个如下格式的文件

abc|1
def|2
abc|8
def|3
abc|5
xyz|3

我需要对第一列中的这些词进行分组,并对第二列的值求和。例如,这个文件的输出应该是

abc|14
def|5
xyz|3

解释:单词“abc”的对应值为 1、8 和 5。通过将这些数字相加,总和为 14,输出变为“abc|14”。同样,对于单词“def”,对应的值为 2 和 3。将这些相加,最终输出为“def|5”。

非常感谢您的帮助:)

我尝试了以下命令

awk -F "|" '{arr[$1]+=$2} END {for (i in arr) {print i"|"arr[i]}}' filename

我发现的另一个命令是

awk -F "," 'BEGIN { FS=OFS=SUBSEP=","}{arr[$1]+=$2 }END {for (i in arr) print i,arr[i]}' filename

两者都没有向我展示预期的结果。尽管我也怀疑这些命令的工作情况。

1 Câu trả lời

短 GNU datamashGiải pháp:

datamash -s -t\| -g1 sum 2 < filename

Đầu ra:

abc|14
def|5
xyz|3

  • -t\| - 字段分隔符

  • -g1 - 按第一列分组

  • sum 2 - 对第 2 列的值求和

关于按计数分组的 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45709687/

25 4 0
Bài viết được đề xuất: java - Android:带有在线文件链接的 TextView
Bài viết được đề xuất: mysql - 我是否弄乱了我的命令行终端
Bài viết được đề xuất: bash - 在 bash 中并行化 for 循环
Bài viết được đề xuất: bash - 使用 csvtool 调用在 bash 中过滤 csv
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com