我在a.csv b.csv ....
文件夹中有5个文件我需要将这些文件合并到一个名为X.csv的文件中,以后将X.csv的内容与a,b,c等合并。
即使每个文件中只有两行,我也会收到错误消息,说明内存不足 - 基本上只复制10行。我使用以下命令:
paste -d, *.csv >> X.csv.
然而,当我使用
时 paste -d, *.csv > X.csv
没有内存问题。然而,我不能使用,因为我以前也需要X.CSV文件的信息所以我只应该追加不编辑整个文件的内容。
有谁知道我是如何实现这一目标的?这些是','分隔的CSV文件,我不想复制多次命名列的标题(第1行)。
我使用MAC OSX Mavericks 8 GB Ram。
谢谢你:)
答案 0 :(得分:2)
正如@loreb所说,*.csv
也匹配X.csv
。您可以使用正确的globbing variable来避免这种情况,但这取决于您的shell是否能够处理...我知道bash
可以,并且您使用bash
标记发布了您的问题,但是你说你使用的是Mac OSX - 嗯,我想你无论如何都可以试试。
paste -d, [a-z]*.csv >> X.csv
这将为paste
命名为a.csv
的{{1}}命令运行z.csv
,小写,因此不会X.csv
,我认为这是当前的问题。
答案 1 :(得分:0)
如果您有大量数据,并且缺少跟踪[a-z].csv
中最后停止处理的行号的工具(我认为不存在),您可以使用以下内容过程:
paste -d, /temporary_directory/*.csv >> /final_destination/X.csv