Antworten:
Einige Versionen von sorthaben eine -zOption, die nullterminierte Datensätze zulässt.
find folder1 folder2 -name "*.txt" -print0 | sort -z | xargs -r0 myCommand
Darüber hinaus können Sie auch ein übergeordnetes Skript schreiben, um dies zu tun:
find folder1 folder2 -name "*.txt" -print0 | python -c 'import sys; sys.stdout.write("\0".join(sorted(sys.stdin.read().split("\0"))))' | xargs -r0 myCommand
Fügen Sie die -rOption hinzu, xargsum sicherzustellen, dass myCommandmit einem Argument aufgerufen wird.
-t \0Option zum Sortieren (was ein -zSynonym ist)
|sortLösungen ist, dass Sie sie nicht -execmehr verwenden können. OK, obwohl es möglich ist, Ihre Aussage umzuschreiben, -execdamit sie funktioniert xargs, lautet die Frage: Was ist mit "Mini-Skripten" ? ( sh -c ...) Ich würde das nicht als xargs
printf %s\\n a b c d e | xargs -n3 sh -c 'printf %s, "$@"; printf \\n' x
Ich denke, Sie brauchen die -nFlagge für Art #
Nach Mann sortieren:
-n, --numeric-sort
compare according to string numerical value
bearbeiten
Das print0 hat vielleicht etwas damit zu tun, ich habe es gerade getestet. Nehmen Sie das print0 heraus, Sie können die Zeichenfolge mit dem -zFlag in Sort beenden
print0scheint ein Leerzeichen zwischen den Dateinamen zu sein, was ich leider an meinen Befehl weitergeben muss
Wenn Sie GNU Parallel http://www.gnu.org/software/parallel/ installiert haben, können Sie dies tun:
find folder1 folder2 -name "*.txt" -print |
sort |
parallel myCommand
Sie können GNU Parallel einfach installieren, indem Sie:
wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
In den Introvideos zu GNU Parallel erfahren Sie mehr: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
.unterschiedlich gehandhabt ... Wennsortes am Ende der Liste auftaucht ... wirdpythones nach oben sortiert. (Vielleicht mit Python sortiertLC_COLLATE=C)