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 Unixtree
, där ' s ingen POSIXtree
. Den endatree
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 medsed
ä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;)