使用MacOS终端,是否可以获取文本文件的目录,并将它们全部组合到一个电子表格中(CSV或Numbers格式),以便:
- 每个文件都在单独的一栏中
- txt文件的每一行都在单独的行中。
- 文件按字母顺序(使用文本文件的文件名的第一个字母)放置在电子表格中。
示例1:以下是合并之前我的文本文件的外观:
示例2:以下是合并后我的文本文件在电子表格中的外观:
(这些例子是部分摘录。我实际上有100个文件要合并)。
我尝试过的步骤:
1.我在Stack Overflow上搜索了答案,但关于这个任务的所有其他问题都使用Python或Panda。我更喜欢可以直接从MacOS终端完成的解决方案,而无需安装Python或Panda等软件包。
1.通过研究,我认为可以使用paste
命令:paste -d '\t' *.txt > ^0-merged.csv
但是,当我尝试这样做时,它会产生以下错误消息:paste: Too many open files
。它还生成一个完全空白的CSV文件。
2条答案
按热度按时间u0njafvf1#
您可以循环追加每个文件。
您必须先创建文件,因为如果找不到文件,粘贴将失败。
https://unix.stackexchange.com/questions/205642/combining-large-amount-of-files
为中包含空格的文件添加新的想法。
zbwhf8kr2#
Ruby是MacOS的一部分。
给出:
您可以:
图纸:
如果你想要一个“正确的”csv,其中包含带引号的字段,可以更好地与Excel配合使用,你可以使用Ruby附带的CSV模块:
图纸:
备注:
它还把文件名放在每一列的顶部。有什么方法可以省略文件名吗?还有,它似乎把大写A-Z和小写a-z分开处理(例如,所以A-Z文件名会先出现,然后是a-z文件名)谢谢!
如果你有不同长度的文件,你可以填充较短文件的结尾,这样你仍然有一个合适的矩阵来转置: