如何在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 1:head -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




