Этот вопрос является обобщенной версией вывода ZipArchive () в древовидном формате вопрос.
Непосредственно перед тем, как я потрачу время на написание этой (* 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
на выходе.Спасибо, @ Альнитак.