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

如何在Unix系统中按指定格式合并两个文件?

问题描述

现有两个文本文件,内容如下:

  • 文件1内容:
A
B
C
D
E
F
  • 文件2内容:
1
2
3

需要生成如下输出:

1
A
B
C
2
E
F
G
解决方案

可以使用awk脚本来实现需求,脚本会预先读取两个文件内容,再按规则输出:

BEGIN {
    # 读取文件1内容存入数组
    while ((getline line < "file1.txt") > 0) {
        content[++cnt] = line
    }
    close("file1.txt")
    # 读取文件2的标记存入数组
    while ((getline line < "file2.txt") > 0) {
        marks[++mark_cnt] = line
    }
    close("file2.txt")
}
END {
    # 输出标记1及对应内容
    print marks[1]
    print content[1]
    print content[2]
    print content[3]
    # 输出标记2及对应内容(跳过D)
    print marks[2]
    print content[5]
    print content[6]
    # 添加额外行G
    print "G"
}

使用步骤

  1. 将文件1命名为file1.txt,文件2命名为file2.txt
  2. 把上述脚本保存为merge_files.awk
  3. 在终端执行命令:awk -f merge_files.awk

执行后就能得到期望的输出内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:20:16