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

如何用awk或sed交叉合并同一文件中的两个表格?

列交错合并的简便实现方法

这种将两个表格对应行的列交替穿插排列的操作,专业上可以称为列交错合并(或“列穿插合并”)。不用拆分文件,直接用脚本就能处理,以下是两种简便方案:

方法一:用awk命令行工具

假设你的原文件名为tables.txt,执行以下awk脚本即可直接生成目标格式:

/^Table A$/ {flag=1; next}
/^Table B$/ {flag=2; idx=1; next}
flag==1 && $0 !~ /^$/ {a[idx++]=$0}
flag==2 && $0 !~ /^$/ {
    split(a[idx], arrA, / /)
    split($0, arrB, / /)
    line=""
    for(i=1; i<=length(arrA); i++){
        line = line sprintf("%-4s", arrA[i]) sprintf("%-4s", arrB[i])
    }
    print line
    idx++
}

把上面的代码保存为merge.awk,然后在终端运行:

awk -f merge.awk tables.txt

方法二:用Python脚本

如果更熟悉Python,也可以用脚本处理:

with open('tables.txt', 'r') as f:
    lines = [line.strip() for line in f if line.strip()]

# 拆分两个表格的内容
split_pos = lines.index('**Table B**')
table_a_rows = lines[1:split_pos]
table_b_rows = lines[split_pos+1:]

# 逐行交错合并
for row_a, row_b in zip(table_a_rows, table_b_rows):
    cols_a = row_a.split()
    cols_b = row_b.split()
    merged_cols = []
    for col_a, col_b in zip(cols_a, cols_b):
        merged_cols.append(f"{col_a:<4}{col_b:<4}")
    print(''.join(merged_cols).rstrip())

运行脚本后就能直接输出目标格式的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:25:09