使用进行正常查找的结果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
这意味着输出仅基于文件名排序,但是文件夹信息应作为输出的一部分进行维护。
编辑:使示例更加复杂,因为子目录结构可能包含多个层次。
2
看到这个问题我问的SO:stackoverflow.com/questions/3222810/...
—
CAMH
@camh-如果可能的话,我只想使用Unix命令。无论如何,我的问题几乎是你的问题。您是否可以将最佳解决方案转移到该线程(始终保持与原始线程的链接),以便我将其标记为解决方案?
—
8:51解开
如果@Shawn做出了我在注释中建议的更改(使用
—
卡姆(Camh)2011年
-printf
代替awk
),我认为这是最好的解决方案。我已经对原始实现进行了重新设计以使用此方法。