首页 > 解决方案 > 在 Mac 终端中编辑然后合并大量 CSV

问题描述

我有一个包含 ~8400 个 CSV 文件的文件夹,这些文件很大:

我厌倦了在终端中将所有内容与 cat 合并,并得到一个 3.2 GB 的 CSV 文件,当我尝试导入时,Excel 只是嘲笑它。所以我需要在合并它们之前把它们变小,这样我就可以开始处理 Excel 中的数据了。幸运的是,我只需要一小部分数据。

基本上,这是一个可以追溯到 2018 年 1 月的每小时时间序列(第一列是日期/时间),但我只需要过去 90 天的结束日期

根据我的数学计算,这让我的行数不到 80 万行,Excel 应该能够打开这些行。

我在想 sed 可以做到这一切,然后 cat 合并新编辑的文件,但这超出了我的能力。非常感谢任何帮助。谢谢。

标签: macoscsvsedterminalcat

解决方案


这是一个非常简化的版本,您可以从中推断。

我的目录中有五个文件:

$ ls folder-with-files/
a   b   c   d   e

每个文件有五行。

$ cat folder-with-files/a
1
2
3
4
5

$ cat folder-with-files/b
10
11
12
13
14
15

等等

现在假设我想要每个文件的最后两行。那里的关键是tail命令。在此之前,我将根据您的规范回显文件名。

$ for f in folder-with-files/*; do echo "FILE: " $f; tail -2 $f; done > big.csv

结果:

$ cat big.csv
FILE:  folder-with-files/a
4
5
FILE:  folder-with-files/b
14
15
FILE:  folder-with-files/c
24
25
FILE:  folder-with-files/d
34
35
FILE:  folder-with-files/e
44
45

推荐阅读