You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Mac OS终端合并同表头CSV文件?替代Windows copy命令方法

在Mac OS合并同表头CSV文件的解决方案

我懂你在Windows下用copy *.csv combined-files.csv的便捷感,但Mac的终端(默认是zsh或bash)得用不同的命令来实现,而且关键要避免重复写入表头——毕竟20个文件表头都一致,合并后只留一份就够了对吧?

这里给你两个实用方案:

方案1:只保留一份表头(强烈推荐)

这个方法会提取第一个CSV的完整内容,再追加其他所有CSV从第二行开始的内容,完美解决重复表头问题:

# 先将第一个文件的表头(及全部内容)写入合并文件
head -n 1 *.csv | head -n 1 > combined-files.csv
# 遍历所有CSV,从第二行开始追加内容到合并文件
tail -n +2 *.csv >> combined-files.csv

简单解释下:

  • head -n 1 *.csv | head -n 1head -n 1 *.csv会输出每个文件的第一行,我们再用head -n 1只取第一个文件的表头,写入目标文件。
  • tail -n +2 *.csv:会输出每个CSV从第二行开始的所有内容,用>>追加到目标文件末尾,跳过了重复的表头。

方案2:快速合并(会重复表头,仅临时场景用)

如果只是想快速拼接所有内容,之后手动处理重复表头,可以直接用cat命令:

cat *.csv > combined-files.csv

这个命令会按顺序把所有CSV的内容拼接起来,但每个文件的表头都会重复出现,适合临时测试或者后续有手动清理步骤的场景。

额外提醒:如果你的CSV文件名包含空格或特殊字符,记得给*.csv加上双引号,写成"*.csv",避免终端解析出错。

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

火山引擎 最新活动