Wynik normalnego znalezienia przy użyciu 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
a po sortowaniu według sort -n:
./as/002-mod.txt
./tool/000-main.txt
./tool/001-sub.txt
./zo/001-int.txt
./zo/id/002-and.txt
jednak pożądanym wynikiem jest:
./tool/000-main.txt
./zo/001-int.txt
./tool/001-sub.txt
./zo/id/002-and.txt
./as/002-mod.txt
co oznacza, że dane wyjściowe są sortowane tylko na podstawie nazw plików , ale informacje o folderach powinny być przechowywane jako część danych wyjściowych.
Edycja : Spraw, aby przykład był bardziej skomplikowany, ponieważ struktura podkatalogów może obejmować więcej niż jeden poziom.
-printfzamiast awk), myślę, że to najlepsze rozwiązanie. Przerobiłem moją pierwotną implementację, aby używać tej metody.