Explicación del comando unexpand de Linux para principiantes (con ejemplos)

Trabajar en la línea de comandos de Linux requiere aprender a realizar rápidamente algunas tareas repetitivas. Una de esas tareas en las que puedes verte envuelto tarde o temprano es convertir espacios en blanco en tabulaciones o viceversa. En este tutorial, hablaremos de una utilidad de la línea de comandos -denominada unexpand- que te será de gran ayuda en tales situaciones.

Pero antes de empezar, vale la pena mencionar que todos los ejemplos de este artículo se han probado en una máquina Ubuntu 16.04 LTS.

Comando unexpand de Linux

El comando unexpand te permite convertir espacios en tabuladores. A continuación se muestra su sintaxis:

unexpand [OPTION]... [FILE]...

Y así es como lo describe la página man:

Convert blanks in each FILE to tabs, writing to standard output. With no FILE, or when FILE is -, read standard input.

A continuación encontrarás algunos ejemplos al estilo de Preguntas y Respuestas que te darán una buena idea de cómo funciona el comando unexpand.

Q1. ¿Cómo utilizar el comando unexpand?

Supón que tienes un archivo con texto que contiene tabulaciones. Ahora, por la razón que sea, conviertes esos tabuladores en espacios utilizando el comando expandir, y ahora quieres volver a convertir los espacios en tabuladores, entonces en este caso, puedes utilizar el comando unexpand.

Por ejemplo:

unexpand file1

La herramienta produce la salida convertida en stdout. Para guardarla, puedes redirigirla a algún archivo. Por ejemplo:

unexpand file1 > file2

Cabe mencionar que, por defecto, esta herramienta sólo funciona con espacios en blanco iniciales. Puedes utilizar la opción -a para indicar a la utilidad que quieres convertir todos los espacios/blancos en tabulaciones.

Q2. ¿Cómo forzar a unexpand a convertir sólo los espacios en blanco iniciales/principales?

La herramienta proporciona una opción que la obliga a convertir sólo los espacios en blanco iniciales o los espacios en blanco (aunque esté presente la opción -a). La opción en cuestión es –sólo-iniciales.

unexpand --first-only -a file1 > file2

Q3. ¿Qué hace la opción -t?

Bueno, la opción -t tiene varias funciones. Acepta un único número o una lista de números separados por comas. Cuando pasas un único número (digamos «n»), el comando unexpand se asegura de comprimir los espacios del archivo en tabulaciones cada «n» posiciones.

Por ejemplo, para hacer que la herramienta comprima los espacios en blanco en tabulaciones cada 3 posiciones, utiliza esta opción de la siguiente manera:

unexpand -t 3 file1 > file2

Por otra parte, si a esta opción se le da una lista de números separada por comandos, la herramienta coloca los tabuladores en esas posiciones concretas.

unexpand -t 1,2,3 file1 > file2

Q4. ¿Cómo hacer que unexpand lea la entrada desde STDIN?

Es bastante fácil: sólo tienes que ejecutar el comando sin ningún nombre de archivo como entrada (utiliza ctrl+D para indicar a la utilidad que has terminado).

Esto es de lo que estoy hablando:

unexpand

Conclusión

Dependiendo del tipo de trabajo que realices, el comando unexpand puede serte de gran ayuda. En este tutorial, hemos tratado la mayoría de las opciones de línea de comandos que ofrece esta herramienta. Para saber más, dirígete a su página man.

También te podría gustar...