【发布时间】:2011-05-24 04:21:26
【问题描述】:
此问题是Output of ZipArchive() in tree format 问题的通用版本。
在我浪费时间编写这个(*nix 命令行)实用程序之前,最好先看看是否有人已经编写了它。我想要一个实用程序,它将获得一个列表作为其标准输入,例如find(1) 返回的列表,并输出类似于tree(1) 的列表
例如:
输入:
/fruit/apple/green
/fruit/apple/red
/fruit/apple/yellow
/fruit/banana/green
/fruit/banana/yellow
/fruit/orange/green
/fruit/orange/orange
/i_want_my_mommy
/person/men/bob
/person/men/david
/person/women/eve
输出
/
|-- fruit/
| |-- apple/
| | |-- green
| | |-- red
| | `-- yellow
| |-- banana/
| | |-- green
| | `-- yellow
| `-- orange/
| |-- green
| `-- orange
|-- i_want_my_mommy
`-- person/
|-- men/
| |-- bob
| `-- david
`-- women/
`-- eve
用法应该是这样的:
list2tree --delimiter="/" < Input > Output
Edit0:我似乎并不清楚这个练习的目的。我喜欢树的输出,但我希望它用于任意输入。它可能不是任何文件系统名称空间的一部分。
Edit1:修复了输出上的 person 分支。谢谢,@Alnitak。
【问题讨论】:
-
除非您安排输入文件在目录中尾随
/,否则输出将不可靠。没有它,过滤器将无法区分空目录和文件。 p.s.你搞砸了树的person分支...... -
tree有什么问题(例如tree -F)? -
澄清@ring0 的优秀评论:mama.indstate.edu/users/ice/tree
标签: unix tree text-processing utility