You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过终端命令实现分组合并重复项并同行展示输出?

实现分组合并重复项的终端命令解决方案

需求说明

现有输入文本:

x 1
x 2
x 3
y 1
y 2 
y 3

需要将相同前缀的行合并,把对应的值用分号拼接,输出为:

x 1;2;3
y 1;2;3

可用终端命令

可以用awk命令实现该需求,命令如下:

awk '{if (prev == $1) {vals = vals ";" $2} else {if (prev != "") print prev " " vals; prev = $1; vals = $2}} END {print prev " " vals}' input.txt

命令解释

  • 逐行遍历输入文本,判断当前行第一个字段(前缀)是否与上一行前缀一致:
    • 一致则将当前行第二个字段追加到值列表,用分号分隔
    • 不一致则输出上一组的前缀和值列表,再更新前缀和值列表为当前行内容
  • 最后通过END块输出最后一组的内容

如果是处理管道传递的标准输入,可省略input.txt,示例:

cat input.txt | awk '{if (prev == $1) {vals = vals ";" $2} else {if (prev != "") print prev " " vals; prev = $1; vals = $2}} END {print prev " " vals}'

内容的提问来源于stack exchange,提问作者simone attanasio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 03:15:39