Sorting the output of "find"?
Use find
as usual and delimit your lines with NUL. GNU sort
can handle these with the -z switch:
find . -print0 | sort -z | xargs -r0 yourcommand
Some versions of sort
have a -z
option, which allows for null-terminated records.
find folder1 folder2 -name "*.txt" -print0 | sort -z | xargs -r0 myCommand
Additionally, you could also write a high-level script to do it:
find folder1 folder2 -name "*.txt" -print0 | python -c 'import sys; sys.stdout.write("\0".join(sorted(sys.stdin.read().split("\0"))))' | xargs -r0 myCommand
Add the -r
option to xargs
to make sure that myCommand
is called with an argument.
I think you need the -n
flag for sort#
According to man sort:
-n, --numeric-sort
compare according to string numerical value
edit
The print0 may have something to do with this, I just tested this. Take the print0 out, you can null terminate the string in sort using the -z
flag