“ arbore ” ieșire comandă cu “ pure ” (7 biți) ieșire ASCII

Comanda „copac” folosește caractere frumoase pentru a arăta arborele, dar vreau să folosesc ieșirea într-un context de „pagină de cod neutră” (știu că într-adevăr există întotdeauna o pagină de cod, dar restricționând-o la caracterele inferioare sper să fiu liber de griji că cineva din Ulan Bator vede fețe zâmbitoare etc.).

De exemplu, în loc de:

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

Mi-ar plăcea ceva de genul:

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

dar niciuna dintre combinațiile de comutatoare „copac” pe care le-am încercat nu a dat acest lucru (pare mai mult ca și cum ar lua caracterele de desenare a casetei ca linie de bază și o vor face totuși mai frumoasă)

am căutat filtre pentru desenarea casetelor pentru a efectua astfel de conversii fără a găsi nimic dincolo de o cantitate infinită de artă ASCII :-). Un filtru generic miroase a ceva care trebuie gătit în 15 minute – plus încă două zile incrementale care se poticnesc în toate cazurile amuzante din colț 🙂

Comentarii

  • Vă mulțumim pentru întrebare. Aveam nevoie de acest lucru, astfel încât să pot conecta ieșirea arborelui în enscript pentru a obține controlul formatării de imprimare (folosind dprint / dprintm din pachetul duplexpr sourceforge.net/projects/duplexpr/ )

Răspuns

Nu sunt sigur de acest lucru, dar cred că tot ce ai nevoie este

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

De exemplu:

$ 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 

Alternativ, puteți utiliza --charset opțiune:

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

Comentarii

  • Există ' s nu GNU tree, acolo ' s nu Unix tree, nu există ' s POSIX tree. Singura implementare tree div id = „ac08570786″>

știu că este mama.indstate.edu/users/ice/tree .

  • @StephaneChazelas mulțumesc, deci opțiunea --charset ar trebui să fie întotdeauna disponibil atunci. Răspuns editat.
  • Splendid! (în special versiunea sed – pentru mine sed este terenurile sălbatice dincolo de frontiera awk)
  • Îmi place opțiunea copac –charset = ascii, mulțumesc
  • De fapt, cred că --charset ar trebui menționată mai întâi – alternativa care folosește sed este instructivă, dar mai complicată …
  • Răspuns

    Dar 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 

    Comentarii

    • Că ' este la fel ca tree --charset nwildner
    • Da. Celălalt răspuns a fost modificat, așa că nu am ´ observat că @terdon a dat un răspuns mai complet în timp ce am scris al meu;)

    Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *