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

Unix环境下如何从数据集A复制指定列至数据集B

如何在Unix中合并两个数据集的指定列?

嗨,作为Unix新手完全不用慌,这个需求用几个基础命令就能搞定!我先帮你理清楚操作步骤,假设你的两个数据集分别存在dataA.txt和dataB.txt文件里:

数据集文件内容

  • dataA.txt:
A
c1 c2 c3
3 2 9
5 3 2
9 1 1
  • dataB.txt:
B
c1 c2
1 2
1 9
1 6

实现命令

直接运行下面这条命令就能得到你想要的结果,输出会保存到result.txt文件里:

{ echo "c1 c2 c3 c4"; paste -d' ' <(tail -n +3 dataB.txt) <(tail -n +3 dataA.txt | cut -d' ' -f2,3); } > result.txt

命令详解

我拆开来给你解释每个部分的作用,方便你理解:

  • echo "c1 c2 c3 c4":先输出你需要的目标表头。
  • tail -n +3 dataB.txt:从dataB.txt的第三行开始读取内容,跳过前两行(单独的B和原表头c1 c2),得到B的纯数据行。
  • tail -n +3 dataA.txt | cut -d' ' -f2,3:先跳过dataA.txt的前两行,再用cut命令以空格为分隔符,提取第2、3列(也就是你需要的c2和c3列数据)。
  • paste -d' ' <(...) <(...):把前面两个命令的输出按行合并,-d' '指定用空格分隔列,避免默认的制表符。
  • > result.txt:把所有输出内容写入到result.txt文件里。

最终结果

打开result.txt就能看到你期望的内容:

c1 c2 c3 c4
1 2 2 9
1 9 3 2
1 6 1 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:02:02