“ tre ” kommandoutgang med “ ren ” (7-bit) ASCII-utgang

Kommandoen «tre» bruker fine bokstegningstegn for å vise treet, men jeg vil bruke utgangen i en «kodeside-nøytral» sammenheng (jeg vet at det virkelig er en kodeside, men ved å begrense den til de lavere tegnene håper jeg å være fri for bekymringer for at noen i Ulan Bator ser smilefjes osv.).

For eksempel i stedet for:

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

Jeg vil ha noe sånt som:

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

men ingen av «tre» -bryterkombinasjonene jeg prøvde ga dette (virker mer som om de tar bokstavtegnene som grunnlinjen og gjør det enda penere)

Jeg har også så etter bokstegningsfiltre for å utføre slike konverteringer uten å finne noe utover en uendelig mengde ASCII-kunst :-). Et generisk filter lukter som noe som skal tilberedes på 15 minutter – pluss ytterligere to inkrementelle dager som snubler inn i alle de morsomme hjørnesakene 🙂

Kommentarer

  • Takk for spørsmålet. Jeg trengte dette slik at jeg kunne føre utdataene fra treet til enscript for å få kontroll over utskriftsformateringen (ved hjelp av dprint / dprintm fra min duplexpr-pakke sourceforge.net/projects/duplexpr/. )

Svar

Jeg er ikke sikker på dette, men jeg tror alt du trenger er

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

For eksempel:

$ 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 bruke --charset alternativ:

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

Kommentarer

  • Der ' uten GNU tree, der ' er ingen Unix tree, der ' er ingen POSIX tree. Den eneste tree implementeringen I ' jeg er klar over er mama.indstate.edu/users/ice/tree .
  • @StephaneChazelas takk, så --charset alternativet skal alltid være tilgjengelig da. Svaret er redigert.
  • Fantastisk! (spesielt sed-versjonen – for meg er sed de ville landene utenfor awk-grensen)
  • Jeg liker treet –charset = ascii-alternativet, takk
  • Egentlig tror jeg --charset alternativet bør nevnes først – alternativet ved hjelp av sed er lærerikt, men mer komplisert …

Svar

Hva med 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

  • At ' er det samme som tree --charset nwildner
  • Yup. Det andre svaret ble redigert slik at jeg ikke ´ la merke til at @terdon ga et mer fullstendig svar mens jeg skrev mitt;)

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *