“ träd ” kommandoutgång med “ ren ” (7-bitars) ASCII-utgång

Kommandot ”träd” använder fina rutritningstecken för att visa trädet men jag vill använda utgången i ett ”kodsida-neutralt” sammanhang (jag vet att det verkligen alltid finns en kodsida, men genom att begränsa den till de lägre tecknen hoppas jag kunna vara orolig för att någon i Ulan Bator ser smileys etc.).

Till exempel istället för:

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

Jag skulle vilja ha något som:

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

men ingen av de ”träd” -omkopplingskombinationer jag försökte gav detta (verkar mer som om de tar rutorna för ritning som baslinjen och gör det ännu vackrare)

Jag har också letade efter filter för att rita sådana konverteringar utan att hitta något utöver en oändlig mängd ASCII-konst :-). Ett generiskt filter luktar något som ska kokas upp på 15 minuter – plus ytterligare två inkrementella dagar som snubblar i alla roliga hörnfall 🙂

Kommentarer

  • Tack för frågan. Jag behövde detta så att jag kunde leda utdata från trädet till enscript för att få kontroll över utskriftsformateringen (med hjälp av dprint / dprintm från mitt duplexpr-paket sourceforge.net/projects/duplexpr/. )

Svar

Jag är inte säker på det här men jag tror allt du behöver är

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

Till exempel:

$ 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 

Alternativt kan du använda --charset alternativ:

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

Kommentarer

  • Där ' utan GNU tree, det finns ' utan Unix tree, där ' s ingen POSIX tree. Den enda tree implementeringen I ' som jag känner till är mama.indstate.edu/users/ice/tree .
  • @StephaneChazelas tack, så --charset alternativet bör alltid vara tillgänglig då. Svar redigerat.
  • Fantastiskt! (särskilt sed-versionen – för mig är sed de vilda länderna bortom awk-gränsen)
  • Jag gillar trädet –charset = ascii-alternativet, tack
  • Jag tror faktiskt att --charset alternativet bör nämnas först – alternativet med sed är lärorikt, men mer komplicerat …

Svar

Vad sägs om 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 

Kommentarer

  • Att ' är samma som tree --charset nwildner
  • Japp. Det andra svaret redigerades så att jag ´ inte märkte att @terdon gav ett mer fullständigt svar medan jag har skrivit mitt;)

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *