-1

可能重复:
以树状递归方式列出所有目录

我想模拟一个使用递归显示所有目录的tree命令,如下所示:awk

|____
| |____0
| |____b
| |____c
| | |____a
| | |____w

我使用sed

find ./ -type d -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

但是我该怎么做awk呢?

4

1 回答 1

3

你没有表现出任何写东西的尝试,但我做了一些东西,所以我向你展示了我的解决方案。期待这可以帮助您学习一些 awk。

find ./ -type d -print | awk -F "/" '{for (i=1; i<=NF-2; i++){printf "| "} print "|____"$NF}'

此 awk 命令用作分隔符“/”(-F 选项)。

并且,对于每一行,打印“|”的次数与字段数 (NF) 减去 2 的次数一样多。最后,它会打印“| _ ”,然后是最后一个字段 ($NF)。

于 2013-01-10T18:40:20.470 回答