Résultat d'une recherche normale utilisant find . ! -path "./build*" -name "*.txt"
:
./tool/001-sub.txt
./tool/000-main.txt
./zo/001-int.txt
./zo/id/002-and.txt
./as/002-mod.txt
et lorsqu'il est trié avec sort -n
:
./as/002-mod.txt
./tool/000-main.txt
./tool/001-sub.txt
./zo/001-int.txt
./zo/id/002-and.txt
cependant, la sortie souhaitée est:
./tool/000-main.txt
./zo/001-int.txt
./tool/001-sub.txt
./zo/id/002-and.txt
./as/002-mod.txt
ce qui signifie que la sortie est triée en fonction du nom de fichier uniquement , mais les informations de dossier doivent être conservées dans le cadre de la sortie.
Edit : rendre l'exemple plus compliqué car la structure du sous-répertoire peut inclure plus d'un niveau.
-printf
plutôt que awk
), je pense que c'est la meilleure solution. J'ai retravaillé mon implémentation d'origine pour utiliser cette méthode.