使用AWK以树状递归列出所有目录

时间:2013-01-10 17:49:32

标签: awk

  

可能重复:
  List all directories recursively in a tree-like

我想使用tree模拟awk命令,它以递归方式显示所有目录,如下所示:

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

我使用sed

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

但我怎样才能使用awk

1 个答案:

答案 0 :(得分:3)

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

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

这个awk命令用作分隔符&#34; /&#34; (-F选项)。

并且,对于每行打印&#34; | &#34;字段数(NF)减去2的时间。 最后打印&#34; | _ &#34;你的最后一个领域($ NF)。