Si vous regardez ce que find
sur le tri :
-s Cause find to traverse the file hierarchies in
lexicographical order, i.e., alphabetical order within each directory.
Note: \`find -s\` and \`find | sort\` may give different results.
Cela signifie que nous devons l'acheminer vers sort
afin que nous puissions le manipuler un peu plus.
Comme vous l'avez déjà vu, un simple tri alphanumérique ne fonctionnera pas parce qu'il compare tout en tant que caractère ANSI et non en tant que nombre. Ce que nous devons faire, c'est comparer les nombres. Nous pouvons le faire avec la fonction -k
option de sort
find . -type d | sort -k2.3
Quel est le sort -k2.3
effectue un tri sur le deuxième champ (délimité par l'espace) jusqu'à la troisième position. Voici le résultat en utilisant votre convention de dénomination des dossiers 1 :
.
./Folder 1
./Folder 2
./Folder 3
./Folder 4
./Folder 5
./Folder 6
./Folder 7
./Folder 8
./Folder 9
./Folder 10
./Folder 11
./Folder 12
./Folder 13
./Folder 14
./Folder 15
1 Pour créer cette structure de dossiers, j'ai utilisé la commande dans mon dossier personnel :
mkdir test; cd test; for n in {1..15}; do mkdir "Folder $n"; done