“ tree ” sortie de la commande avec “ pure ” (7 bits) Sortie ASCII

La commande « tree » utilise de jolis caractères de dessin de boîte pour afficher larbre mais je veux utiliser la sortie dans un contexte « neutre de page de code » (je sais quil y a toujours une page de code, mais en la limitant aux caractères inférieurs, jespère ne pas avoir à craindre que quelquun à Oulan Bator voit des visages souriants, etc.).

Par exemple au lieu de:

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

Je « voudrais quelque chose comme:

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

mais aucune des combinaisons de commutateurs « arborescents » que jai essayées na donné cela (on dirait plutôt quils prennent les caractères de dessin de boîte comme base et le rendent encore plus joli)

Jai aussi recherché des filtres de dessin de boîte pour effectuer de telles conversions sans rien trouver au-delà dune quantité infinie dart ASCII :-). Un filtre générique sent quelque chose à préparer en 15 minutes – plus deux jours supplémentaires pour tomber dans tous les coins amusants 🙂

Commentaires

  • Merci pour la question. Jen avais besoin pour pouvoir canaliser la sortie de larbre dans enscript pour obtenir le contrôle du formatage dimpression (en utilisant dprint / dprintm de mon package duplexpr sourceforge.net/projects/duplexpr/. )

Réponse

Je ne suis pas sûr de cela mais je pense que tout ce dont vous avez besoin est

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

Par exemple:

$ 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 

Vous pouvez également utiliser le --charset option:

$ tree --charset=ascii . |-- file0 `-- foo |-- bar | `-- file2 `-- file1 2 directories, 3 files 

Commentaires

  • Il ' s pas de GNU tree, il ny a ' pas dUnix tree, il ny a ' aucun POSIX tree. La seule tree implémentation I ' Je connais mama.indstate.edu/users/ice/tree .
  • @StephaneChazelas merci, donc loption --charset devrait toujours être disponible alors. Réponse modifiée.
  • Splendide! (en particulier la version sed – pour moi sed est les terres sauvages au-delà de la frontière awk)
  • Jaime loption tree –charset = ascii, merci
  • En fait, je pense que le --charset doit être mentionnée en premier – lalternative utilisant sed est instructive, mais plus compliquée …

Réponse

Quen est-il de 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 

Commentaires

  • Que ' est identique à tree --charset nwildner
  • Ouais. Lautre réponse a été modifiée donc, je nai ´ pas remarqué que @terdon a donné une réponse plus complète pendant que jécris la mienne;)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *