ผลการค้นหาปกติที่ใช้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
และเมื่อเรียงลำดับด้วยsort -n
:
./as/002-mod.txt
./tool/000-main.txt
./tool/001-sub.txt
./zo/001-int.txt
./zo/id/002-and.txt
อย่างไรก็ตามผลลัพธ์ที่ต้องการคือ:
./tool/000-main.txt
./zo/001-int.txt
./tool/001-sub.txt
./zo/id/002-and.txt
./as/002-mod.txt
ซึ่งหมายความว่าผลลัพธ์จะถูกจัดเรียงตามชื่อไฟล์เท่านั้นแต่ควรรักษาข้อมูลโฟลเดอร์ไว้เป็นส่วนหนึ่งของผลลัพธ์
แก้ไข : ทำให้ตัวอย่างมีความซับซ้อนมากขึ้นเนื่องจากโครงสร้างไดเรกทอรีย่อยอาจมีมากกว่าหนึ่งระดับ
-printf
แทนawk
) ฉันคิดว่านั่นเป็นทางออกที่ดีที่สุด ฉันได้ทำใหม่การใช้งานดั้งเดิมของฉันเพื่อใช้วิธีนี้