“ tree ” output del comando con “ pure ” (7-bit) output ASCII

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 è Unix tree, ' non è presente tree. Lunica tree 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 utilizza sed è 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;)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *