Necesito poder ordenar alfabéticamente la salida de findantes de canalizarla a un comando. Entrar | sort |entre no funcionó, entonces, ¿qué podría hacer?
find folder1 folder2 -name "*.txt" -print0 | xargs -0 myCommand
Necesito poder ordenar alfabéticamente la salida de findantes de canalizarla a un comando. Entrar | sort |entre no funcionó, entonces, ¿qué podría hacer?
find folder1 folder2 -name "*.txt" -print0 | xargs -0 myCommand
Respuestas:
Algunas versiones de sorttienen una -zopción, que permite registros terminados en nulo.
find folder1 folder2 -name "*.txt" -print0 | sort -z | xargs -r0 myCommand
Además, también podría escribir un script de alto nivel para hacerlo:
find folder1 folder2 -name "*.txt" -print0 | python -c 'import sys; sys.stdout.write("\0".join(sorted(sys.stdin.read().split("\0"))))' | xargs -r0 myCommand
Agregue la -ropción para xargsasegurarse de que myCommandse llame con un argumento.
-t \0opción de ordenar (que es -zsinónimo)
|sortsoluciones es que ya no puede usarlas -exec. OK, aunque es posible reescribir su declaración dada para -execque funcione xargs, la pregunta es, ¿qué pasa con los "mini-scripts" ? ( sh -c ...) No llamaría a eso trivial para transformar un mini script 'sh -c' con múltiples comandos para que pueda funcionar xargs(si es posible, es decir)
printf %s\\n a b c d e | xargs -n3 sh -c 'printf %s, "$@"; printf \\n' x
Creo que necesitas la -nbandera para ordenar #
Según el tipo de hombre:
-n, --numeric-sort
compare according to string numerical value
editar
El print0 puede tener algo que ver con esto, acabo de probar esto. Saque la print0, puede terminar nulo la cadena en orden usando la -zbandera
print0parece estar separando el espacio de los nombres de archivo, que es lo que necesito pasar a mi comando, desafortunadamente
Si tiene instalado GNU Parallel http://www.gnu.org/software/parallel/ , puede hacer esto:
find folder1 folder2 -name "*.txt" -print |
sort |
parallel myCommand
Puede instalar GNU Parallel simplemente por:
wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
Mire los videos de introducción de GNU Parallel para obtener más información: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
.diferente ... Consortesto termina al final de la lista ... con el ordenpythonen la parte superior. (tal vez Python se clasifica conLC_COLLATE=C)