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

如何批量将多份TSV文件的第三列合并至首个文件(支持任意数量)

合并多列TSV文件的解决方案

方法1:使用awk(高效适配任意数量文件)

利用awk按行号存储内容,第一个文件保留完整行,后续文件仅追加第三列,命令如下:

awk '
BEGIN {FS=OFS="\t"}
FNR==1 {file_count++}
{
    if (file_count == 1) {
        line[FNR] = $0
    } else {
        line[FNR] = line[FNR] OFS $3
    }
}
END {
    for (i=1; i<=FNR; i++) {
        print line[i]
    }
}' file*.tsv > output.tsv

说明:

  • file*.tsv会匹配所有以file开头的TSV文件,可根据实际文件名调整匹配规则
  • 输出文件output.tsv的行顺序与原文件完全一致,不会出现错位

方法2:使用Shell循环+paste命令

适合文件名有规律的场景,通过循环逐个提取第三列并合并:

# 以第一个文件为基础初始化输出文件
cp file1.tsv output.tsv

# 遍历除第一个文件外的所有TSV文件
for file in $(ls file*.tsv | grep -v file1.tsv); do
    # 提取当前文件第三列,与输出文件合并
    paste output.tsv <(cut -f3 "$file") > temp.tsv
    mv temp.tsv output.tsv
done

说明:

  • 如果文件名是file1.tsv、file2.tsv...fileN.tsv,可直接用file{2..N}.tsv替代循环里的文件名匹配
  • 每次合并生成临时文件,最后替换原输出文件,实现逐步追加内容

注意事项

  • 必须保证所有文件的行数一致,且每行前两列的内容、顺序完全匹配,否则会出现内容错位
  • 处理超大文件时优先选择awk方法,避免多次读写临时文件带来的性能损耗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:12:48