假设我的目录中有很多文件,我需要将最多 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