如何将文件分成几组以便进行聚合处理?

如何将文件分成几组以便进行聚合处理?

假设我的目录中有很多文件,我需要将最多 100 个文件的集群连接成一个新文件。

我怎样才能在 bash 中做到这一点?

为了回答这个问题,我们假设在聚类之前我不需要以任何方式对它们进行排序

答案1

您可以使用find+ xargs

find -maxdepth 1 -type f -print0 | xargs -0 -n100 process.sh

xargs按百对文件进行分组,find帮助其理解名称中带有空格的文件。

更新

在中process.sh,只需找到第一个不存在的名称并创建文件:

i=0
while [[ -f concatenated-$i ]] ; do (( i++ )) ; done
cat "$@" > concatenated-$i

相关内容