Il comando “albero” usa dei simpatici caratteri di disegno per mostrare lalbero ma io voglio usare loutput in un contesto “code-page-neutral” (so che in realtà cè sempre una code page, ma limitandola ai caratteri inferiori spero di essere libero dalla preoccupazione che qualcuno a Ulan Bator veda faccine sorridenti, ecc.).
Ad esempio invece di:
├── include │ ├── foo │ └── bar
Mi “piacerebbe qualcosa del tipo:
+-- include | +-- foo | \-- bar
ma nessuna delle combinazioni di interruttori “albero” che ho provato ha dato questo (sembra più come se prendessero i caratteri di disegno in scatola come linea di base e lo rendessero ancora più carino)
Anchio ha cercato filtri di disegno in scatola per eseguire tali conversioni senza trovare nulla oltre una quantità infinita di arte ASCII :-). Un filtro generico ha lodore di qualcosa da preparare in 15 minuti, più altri due giorni incrementali che si imbattono in tutti i casi più divertenti 🙂
Commenti
- Grazie per la domanda. Ne avevo bisogno in modo da poter convogliare loutput di tree in enscript per ottenere il controllo della formattazione di stampa (utilizzando dprint / dprintm dal mio pacchetto duplexpr sourceforge.net/projects/duplexpr/. )
Risposta
Non ne sono sicuro, ma penso che tutto ciò di cui hai bisogno sia
tree | sed "s/├/\+/g; s/─/-/g; s/└/\\/g"
Ad esempio:
$ 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
In alternativa, puoi utilizzare --charset
opzione:
$ tree --charset=ascii . |-- file0 `-- foo |-- bar | `-- file2 `-- file1 2 directories, 3 files
Commenti
- Lì ' non è GNU
tree
, ' non è Unixtree
, ' non è presentetree
. Lunicatree
implementazione I ' di cui sono a conoscenza mama.indstate.edu/users/ice/tree . - @StephaneChazelas grazie, quindi lopzione
--charset
dovrebbe essere sempre disponibile allora. Risposta modificata. - Splendido! (specialmente la versione sed – per me sed è le terre selvagge oltre la frontiera di awk)
- Mi piace lopzione tree –charset = ascii, grazie
- In realtà penso che
--charset
dovrebbe essere menzionata per prima: lalternativa che utilizzased
è istruttiva, ma più complicata …
Risposta
Che dire di 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
Commenti
- Questo ' è uguale a
tree --charset nwildner
- Sì. Laltra risposta è stata modificata in modo che ´ non abbia notato che @terdon ha dato una risposta più completa mentre scrivevo la mia;)