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

Linux行合并需求求助:实现两种指定格式的行内容整合

实现两种格式的命令行解决方案

第一种格式:合并关联行到单行

使用awk脚本将每个主条目及其后续的详细行合并为一行:

awk '
/^[0-9]/ {
    if (main != "") print main
    main = $0
    sub(/[[:space:]]+$/, "", main)
    next
}
{
    sub(/^[[:space:]]+/, "", $0)
    main = main "  " $0
}
END {
    print main
}' input.txt

说明:

  • 当遇到以数字开头的行(主条目)时,先打印之前保存的合并行(如果存在),然后将当前行作为新的主行保存(并去除末尾空格)。
  • 对于缩进的详细行,去除开头空格后追加到当前主行末尾。
  • 最后打印剩余的合并行。

第二种格式:填充缺失的前两列

使用awk脚本自动填充每行缺失的第一、第二列内容:

awk '
/^[0-9]/ {
    num = $1
    code = $2
    print $0
    next
}
{
    sub(/^[[:space:]]+/, "", $0)
    printf "%-2s %-4s %s\n", num, code, $0
}' input.txt

说明:

  • 遇到以数字开头的行时,保存当前的第一列(编号)和第二列(代码),并直接打印该行。
  • 对于缩进的详细行,去除开头空格后,用保存的编号和代码填充前两列,再打印完整内容。
  • printf的格式化参数%-2s和%-4s确保前两列左对齐并保持固定宽度,与示例格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:43:27