【发布时间】:2020-06-10 22:51:57
【问题描述】:
我正在尝试解决一种将大量(200 万)文本文件连接成 100k 文件块的有效方法。
现在我有
!#/usr/bin/zsh
a=0
b=0
for file in ./dir/*.txt
do
let a+=1
cat "$file" >> $results$b.txt
if (($a>10000))
then
let b+=1
let a=0
fi
done
我不知道如何以“快速”的方式制作 chuks?我机器中的这段代码大约需要 2 分钟来处理块,并且需要大约 200 个块,所以大约需要 7 个小时。这是一件我需要做一次的事情,所以它不是世界末日,但我喜欢更好地学习和思考,并以更有效的方式去做。
谢谢
【问题讨论】:
-
到目前为止你有什么尝试?
-
一种方法是使用 GNU 并行和 GNU 拆分:
parallel 'cat | split -b 100000' ::: *.txt -
您使用的是 bash 还是 zsh(虽然我怀疑这对任何答案都很重要,但您应该适当地标记)?
-
太糟糕了,downvoters 没有解释这个 Q 有什么问题(他们可能不会再看它,所以我们永远不会知道)。对于早期的 Q,这表明了解决您的问题的有意义的尝试,并包含一些代码(喘气!)。我不明白。很抱歉接待不好,祝您好运解决您的问题。
标签: zsh