我有一个约8400个CSV文件的文件夹,很大。
我累了就在终端用cat合并,得到了一个3.2GB的CSV文件,当我想导入时,Excel就笑了。所以我需要在合并之前把这些数据变小,这样我就可以开始在Excel中搞数据了。幸运的是,我只需要一小部分数据的子集。
基本上,这是一个每小时的时间序列,可以追溯到2018年1月(第一列是datetime),但我只需要过去90天的日终数。
根据我的计算,这让我有不到80万行,Excel应该可以打开。
我想sed可以做到这一切,然后用cat来合并新编辑的文件,但这超出了我的能力范围。任何帮助非常感激。谢谢。
这是一个极其简化的版本,你可以从这里推断。
我的目录里有五个文件。
$ 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