“ árbol ” salida de comando con “ pure ” (7 bits) salida ASCII

El comando «árbol» usa bonitos caracteres de dibujo de caja para mostrar el árbol, pero quiero usar la salida en un contexto de «página de código neutral» (sé que realmente siempre hay una página de código, pero al restringirla a los caracteres inferiores espero estar libre de preocupaciones de que alguien en Ulan Bator vea caras sonrientes, etc.).

Por ejemplo, en lugar de:

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

Me «gustaría algo como:

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

pero ninguna de las combinaciones de interruptores de «árbol» que probé dio esto (parece más como si tomaran los caracteres de dibujo de caja como línea de base y lo hicieran aún más bonito)

Yo también buscó filtros de dibujo de caja para realizar tales conversiones sin encontrar nada más allá de una cantidad infinita de arte ASCII :-). Un filtro genérico huele a algo para cocinar en 15 minutos, más dos días incrementales más tropezando con todos los divertidos casos de esquina 🙂

Comentarios

  • Gracias por la pregunta. Necesitaba esto para poder canalizar la salida del árbol a enscript para obtener el control del formato de impresión (usando dprint / dprintm de mi paquete duplexpr sourceforge.net/projects/duplexpr/. )

Responder

No estoy seguro de esto, pero creo que todo lo que necesita es

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

Por ejemplo:

$ 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 

Alternativamente, puede utilizar el --charset opción:

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

Comentarios

  • Hay ' s no GNU tree, no hay ' s no Unix tree, no hay ' POSIX tree. La única tree implementación I ' soy consciente de mama.indstate.edu/users/ice/tree .
  • @StephaneChazelas gracias, así que la opción --charset entonces siempre debería estar disponible. Respuesta editada.
  • ¡Espléndido! (especialmente la versión sed; para mí, sed son las tierras salvajes más allá de la frontera de awk)
  • Me gusta la opción tree –charset = ascii, gracias
  • En realidad creo que la --charset La opción debe mencionarse primero – la alternativa usando sed es instructiva, pero más complicada …

Respuesta

¿Qué pasa con 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 

Comentarios

  • Que ' sea lo mismo que tree --charset nwildner
  • Sí. La otra respuesta fue editada, así que no ´ noté que @terdon dio una respuesta más completa mientras escribía la mía;)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *