【发布时间】:2014-05-13 01:38:42
【问题描述】:
我有一个包含很多行的文件,其中包含一个哈希和一些格式的文本
DEADBEEF Some text
CAFEBABE More text
DEADBEEF Blah, blah
我想将它逐行拆分为由哈希命名的文件。我设法用 awk 做到了:
awk '{ print substr($0, 10, 1000) >> substr($0, 1, 8); close(substr($0, 1, 8))}'
这给了我一个名为 DEADBEEF 的文件,其中包含内容
Some text
Blah, blah
和另一个包含内容的文件 CAFEBABE
More text
问题是,我有很多文件,文件系统变慢,一个文件夹中有很多文件,所以我想将文件拆分到一些文件夹中,例如 DE/DEADBEEF 和 CA/CAFEBABE。
我该怎么做? 可以吗?
【问题讨论】:
-
您可以
sort您的输入文件,并创建一个索引,其中包含指向应该代表特定文件的节的开始位置的指针。在编写索引时,您还可以重写已排序的输入,删除哈希数据。如果您需要同一部分中的行之间的顺序与初始文件中的相同,只需使用稳定的排序算法即可。