我正在寻找使用bash删除大小为0的文件的最快方法。
我从GNU并行运行的grep命令中将成千上万个大小为0的文件(以及有价值的输出)生成到单个输出目录中。当grep找到匹配项时,输出文件将包含信息。如果grep找不到匹配项,则输出文件为空。
parallel -j $numcores "grepfunction {} > output_{}.fastq" ::: "${input_array[@]}"
我正在使用以下方法删除空文件,但我想找到一个更快的选项。在搜索大多数解决方案时,我发现使用类似的基于find的命令,它们以相似的速度工作。
find results2/ -size 0 -delete
根据评论中的建议,我也尝试了以下方法
find ./results2 -size 0 -print0 |xargs -0 rm --
从质量上讲它很慢,但是我将进行基准测试并报告。
任何建议都值得赞赏。
答案 0 :(得分:0)
(这应该是评论,但很难读作评论)。
如果您要再次运行作业,则可以将其作为文件生成的一部分:
parallel -j $numcores "grepfunction {} > output_{}.fastq ||
rm output_{}.fastq" ::: "${input_array[@]}"
我假设grep函数如果匹配(例如grep
会返回true)。