bat es una de esas herramientas que deberían estar por defecto en la instalación de tu sistema operativo. Con eso, te lo digo todo. Lo cierto, es que esta herramienta la tenía guardada para revisar en mi buzón de entrada, y no le había prestado la suficiente atención. Y no le había prestado la suficiente atención hasta que finalmente le llegó el día de estudiarla con detalle. Y sinceramente, menuda maravilla. No se como no le he dedicado tiempo antes. bat no es mas que cat supermineralizado y supervitaminado. O tal y como lo define el propio desarrollador se trata de un clon de cat con alas (a cat clone with wings).
Desde luego se trata de una fantástica herramienta para el terminal, con la que la visualización de un archivo se convierte en una experiencia completamente diferente, a la que podrías obtener con simplemente cat.
bat un cat con alas
Antes que me despiste, indicarte que evidentemente, bat no tiene nada que ver con los .bat
que algunos conocemos de antaño. Y no quería dejarlo de comentar, por que lo cierto es que me trae cierta nostalgia. No tanto de aquel sistema operativo, si no mas bien de los tiempos… en fin que me pongo sentimental.
¿Que es cat?
Si no eres de los que frecuentan el terminal, es posible que no conozcas lo que es cat. Indicarte que en el tutorial sobre Bash, dediqué un capítulo a algunas herramientas como head, tail, split y cat. Allí podrás informarte con mas detalle sobre estas utilidades.
Sin lugar a dudas, cat es una de las herramientas mas utilizadas en el terminal, y con lo sencillo que puede parecerte, lo cierto es que lo puedes utilizar para tres funciones.
Por un lado, cat te permite leer archivos. También te permite combinar varios archivos en uno. Por último, te permite crear archivos nuevos.
Sobre bat
bat presenta algunas diferencias con cat que lo hace realmente interesante, sobre todo para aquellos que andamos todo el día enredados en el terminal. Sin embargo, aunque este no sea tu caso, tener presente bat es un éxito seguro.
Solo te tienes que fijar en la captura de pantalla que te muestro a continuación. Se trata de una captura de pantalla en la que tienes a un lado la salida de bat y al otro, la salida de cat. A ver si sabes distinguir quien es quien.
Resaltado
Una de las características mas interesantes de bat es que permite el resaltado de sintaxis. Esa característica hace que si una palabra pertenece a un lenguaje de programación o de marcado ligero, como puede ser markdown se resalta apareciendo en otro color.
Integración con Git
Ya sea porque te decicas a la programación o porque simplemente llevas un control de versiones, para ser ordenado y estar mas tranquilo, la integración con Git de esta herramienta te resultará una verdadera maravilla.
Así, cuando estás viendo el contenido de un archivo utilizando bat y que está bajo el control de versiones de Git, en el panel lateral, podrás ver las modificaciones que ha sufrido ese archivo.
Otras opciones
bat además te ofrece otras interesantes características como la posibilidad de mostrarte todos los caracteres no imprimibles. Para ello, tienes que utilizar la opción -A
o --show-all
.
Otra opción que puedes considerar es especificar el lenguaje directamente en la llamada a bat
. Esto es especialmente interesante cuado estás redirigiendo entrada y salida o cuando el archivo no tiene extensión. Para ello, simplemente tienes que utiliza bat -l <lenguaje>
Con bat verás en la parte izquierda, lo que he descrito anteriormente, como panel, números y una línea vertical, que separan estos números del texto. Estos números representan los números de línea, como ya habías deducido tu mismo. Tienes una opción para no mostrar esa línea vertical utilizando la opción -n
, de forma que solo te mostrará los números de línea, ya así ganarás unos milímetros de espacio.
Por otro lado, es posible utilizar bat encadenado con less, para aquellas salidas que tienen mas de una pantalla.
Y por supuesto, cumpliendo con las características del original, es posible concatenar archivos. De esta forma, si bat detecta que lo que estás haciendo es una operación de este estilo, simplemente se comportará como cat
.
Algunos ejemplos de uso de este cat con alas
Para completar lo que has visto hasta el momento sobre esta herramienta, te indico algunas de las posibilidades que te ofrece esta espectacular herramienta.
bat README.md
muestra el contenido del archivo. En este caso al tratarse de un archivo con sintaxis markdown lo resaltará atentiendo a esta circustancia.bat *.py
en este caso, mostrará todos los archivos Python que tengas en el directorio, con su correspondiente resaltado de sintaxis, uno a continuación de otro. Simplemente, estarán separados por el un par de líneas, y el nombre del archivo, para que sepas exactamente lo que estás viendo.curl -s https://atareao.es | bat
, la salida decurl
va directamente a la entrada debat
. Vamos, lo esperado en este tipo de ejecuciones, tal y como te explico en el capítulo redirigir entrada y salida del tutorial sobre el terminal.bat > nuevo_archivo.nd
para crear un nuevo archivo.bat archivo1.md archivo2.md > archivo.md
en el caso de que quieras concatenar varios archivos en unobat -n
find . -name "*.md" -exec bat {} \;
te muestra todos los archivos que encuentra uno a uno, por separado.find . -name "*.md" -exec bat {} +
igual que en el caso anterior, pero en lugar de mostrarlos por separado los encadena, de forma que los ves uno a continuación de otro.tail -f /var/log | bat --paging=never -l log
. Con la opción--paging=never
evitas precisamente la paginación del resultado, y por otro lado, con la opción-l log
conseguirás que te entienda que lo que le estás pasando es un log.
Personalización
Es posible cambiar el tema del resaltado. Para ello, tienes que ejecutar bat --list-themes
. De esta forma obtendrás todos los temas posibles para el resaltado de sintaxis. Para seleccionar una de ellas puedes utilizar la opción --theme=
o bien, indicarlo como una variable de entorno BAT_THEME
.
Pero si lo que has visto hasta el momento, te parece poco, indicarte que es posible añadir mas archivos de sintaxis para expandir las posibilidades de esta herramienta.De cualquier forma, te recomiendo, visites la documentación sobre esta herramienta, porque allí encontrarás mas información relativa a las opciones de configuración de este clon de cat con alas.
Instalación
Para las versiones superiores a la 19.10 bat se encuentra en los repositorios oficiales de Ubuntu. Para versiones inferiores, puedes instalarlo directamente desde el repositorio de GitHub, donde lo encontrarás en paquete .deb para las diferentes arquitecturas. También lo podrás instalar en tu Raspberry…
Más información,