“tree” com saída ASCII “pura” (7 bits)

37

O comando "tree" usa bons caracteres de desenho de caixa para mostrar a árvore, mas eu quero usar a saída em um contexto "neutro de página de código" (eu sei que há sempre uma página de código, mas restringindo-a para os personagens mais baixos, espero estar livre de preocupações de que alguém em Ulan Bator veja rostos sorridentes, etc.).

Por exemplo, em vez de:

├── include
│   ├── foo
│   └── bar

Eu gostaria de algo como:

+-- include
|   +-- foo
|   \-- bar

mas nenhuma das combinações de troca de "árvore" que eu tentei deu isto (parece mais como se elas pegassem os caracteres de desenho de caixa como base e tornassem ainda mais bonito)

Eu também procurei filtros de desenho de caixa para realizar tais conversões sem encontrar nada além de uma quantidade infinita de arte ASCII :-). Um filtro genérico cheira a algo para ser cozinhado em 15 minutos - mais dois dias incrementais tropeçando em todos os casos divertidos: -)

    
por Tom Goodfellow 29.04.2014 / 12:00

2 respostas

45

Eu não tenho certeza sobre isso, mas acho que tudo que você precisa é

tree | sed 's/├/\+/g; s/─/-/g; s/└/\/g'

Por exemplo:

$ tree
.
├── file0
└── foo
    ├── bar
    │   └── file2
    └── file1

2 directories, 3 files
$ tree | sed 's/├/\+/g; s/─/-/g; s/└/\/g'
.
+-- file0
\-- foo
    +-- bar
    │   \-- file2
    \-- file1

2 directories, 3 files

Como alternativa, você pode usar a opção --charset :

$ tree --charset=ascii
.
|-- file0
'-- foo
    |-- bar
    |   '-- file2
    '-- file1

2 directories, 3 files
    
por 29.04.2014 / 12:27
23

Que tal tree --charset unicode ?

|-- boot_print
|   |-- config-2.6.32-5-amd64
|   |-- grub
|   |   |-- 915resolution.mod
|   |   |-- acpi.mod
|   |   |-- affs.mod
|   |   |-- afs_be.mod
|   |   |-- afs.mod
|   |   |-- aout.mod
|   |   |-- ata.mod
|   |   |-- ata_pthru.mod
|   |   |-- at_keyboard.mod
|   |   |-- befs_be.mod
|   |   |-- befs.mod
|   |   |-- biosdisk.mod
|   |   |-- bitmap.mod
|   |   |-- bitmap_scale.mod
|   |   |-- blocklist.mod
|   |   |-- boot.img
    
por 29.04.2014 / 12:40