gpt4 book ai didi

linux - 大量文件串联

转载 作者:太空狗 更新时间:2023-10-29 11:39:37 25 4
gpt4 key购买 nike

我在目录文件名中有大约 3-4 百万个文件,文件名以 type1.txt、type2.txt 结尾。(文件是 1type1.txt、1type2.txt、2type2。 txt,2type2.txt 等)

现在我想连接所有以 type1.txt 和 type2.txt 结尾的文件。

目前我正在为 type2.txt 做类似的 cat *type1.txt > allTtype1.txt。 我想保留两个最终输出文件中的顺序,我猜 cat 会这样做。 但它太慢了。

请建议一些更快的方法来做同样的事情。

谢谢, 拉维

最佳答案

您可以使用此命令执行此操作:

ls | while read file; do cat $file >> allTtype${file#*type}; done

但正如上面 snap 在他的回答中所说,每次 cat 需要打开一个文件时,它都必须进行 inode 查找,这在包含大量文件的目录中会花费很长时间。为了加快速度,您可以使用 icat 按 inode 进行分类。来自 Sleuth Kit :

ls -i | while read -a file_array; do icat /dev/sda1 ${file_array[0]} >> allTtype${file_array[1]#*type}; done

更好的是,您可以将生成的文件放在另一个目录中:

ls -i | while read -a file_array; do icat /dev/sda1 ${file_array[0]} >> /newdir/allTtype${file_array[1]#*type}; done

关于linux - 大量文件串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6939005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com