Answers:
的某些版本sort
具有一个-z
选项,该选项允许以空值结尾的记录。
find folder1 folder2 -name "*.txt" -print0 | sort -z | xargs -r0 myCommand
此外,您还可以编写一个高级脚本来做到这一点:
find folder1 folder2 -name "*.txt" -print0 | python -c 'import sys; sys.stdout.write("\0".join(sorted(sys.stdin.read().split("\0"))))' | xargs -r0 myCommand
添加-r
选项以xargs
确保myCommand
使用参数调用该选项。
-t \0
一个排序选项(这是-z
同义词)
|sort
解决方案的问题是您不能再使用了-exec
。好的,尽管可以重写您给的声明以-exec
使其与一起使用xargs
,但问题是,“迷你脚本”怎么样?(sh -c ...
)我不会轻易用多个命令来转换“ sh -c”迷你脚本,以便它可以使用xargs
(如果可能的话,也可以)
printf %s\\n a b c d e | xargs -n3 sh -c 'printf %s, "$@"; printf \\n' x
如果您安装了GNU Parallel http://www.gnu.org/software/parallel/,则可以执行以下操作:
find folder1 folder2 -name "*.txt" -print |
sort |
parallel myCommand
您可以通过以下方法简单地安装GNU Parallel:
wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
观看有关GNU Parallel的介绍性视频以了解更多信息:https : //www.youtube.com/playlist?list=PL284C9FF2488BC6D1
.
有所不同...sort
它在列表的末尾出现...在python
其顶部排序。(也许python用排序LC_COLLATE=C
)