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

如何用awk将多行数据按首列编号合并为单行?

使用Awk合并分组文本并按编号排序

输入内容

100,a
b
c
101,d,e
f
102,g
103,h
104,i
j
k

目标输出

100,a,b,c
101,d,e,f
102,g
103,h
104,i,j,k

实现命令

awk '
/^[0-9]/ {
    if (line != "") print line
    line = $0
    next
}
{ line = line "," $0 }
END { print line }
' input.txt | sort -n

命令解释

  1. 识别分组起始行:用/^[0-9]/匹配以数字开头的分组标记行,若已有缓存的分组内容则先输出,再将当前行设为新分组的起始内容。
  2. 追加分组内容:非数字开头的行,直接以逗号分隔追加到当前分组的缓存行末尾。
  3. 收尾最后一个分组:END块负责输出最后一个未打印的分组内容。
  4. 按编号排序:通过管道传递给sort -n,实现按数字编号升序排列结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:27:26