GNU/Linux >> Tutoriales Linux >  >> Linux

Convierta pestañas en espacios en la terminal de Linux con el comando Expandir

El debate sobre el uso de tabulaciones y espacios en la programación es interminable.

Si bien es posible que prefiera usar tabulaciones todo el tiempo, es probable que su pauta de codificación sugiera el uso de espacios.

Pero si ya usó tabulaciones en todas partes de su programa y necesita convertir esas tabulaciones en espacios para que el revisor permita su código, está en el lugar correcto.

En este tutorial, le mostraré cómo convertir las pestañas en espacios en un archivo de texto en la línea de comandos de Linux.

Uso del comando expand para convertir pestañas en espacios en la línea de comandos de Linux

Estoy usando este archivo de texto de muestra, que es un programa simple de C++ para verificar números pares e impares. Este es el contenido del archivo:

Puede descargar este archivo desde aquí si desea practicar el comando mientras sigue este tutorial.

Comprueba si tu archivo de texto tiene pestañas

Hay varias formas de hacerlo. El método más simple que encuentro es usar el comando cat.

Puede usar el comando cat con la opción -T y mostrará todas las pestañas como ^I en la pantalla (stdout).

cat -T tab_file

Puede ver la ubicación de las pestañas en el archivo.

#include
using namespace std;
int main()
{
^Iint n;
^Icout << “Enter a number:^I“;
^Icin >> n;
^I
^Iif (n%2 == 0) {
^I^Icout<<n<< “is an even Number”;
^I}
^Ielse
^I^Icout<<n<< “is an odd Number”;
^Ireturn 0;
}

Convertir pestañas en espacios con el comando expandir

Si usa el comando expandir en un archivo, convertirá todas las pestañas en un bloque de 8 espacios y mostrará el resultado en la pantalla.

expand tab_file

Pero eso no es muy conveniente, ¿verdad? Difícilmente verás los cambios aquí. Una mejor idea sería guardar la salida en otro archivo.

expand tab_file > space_file

Ahora, si ve el archivo usando el comando cat, ya no encontrará ninguna pestaña.

Reduce el número de espacios

Como mencioné en la sección anterior, por defecto, una pestaña equivale a 8 espacios. Eso se vería súper raro si tu código tiene una sangría tan grande.

Lo bueno es que puedes cambiar el tamaño del espacio predeterminado con la opción -t.

expand -t N tab_file

Por ejemplo, si tiene que cambiar cada pestaña en 2 espacios, puede usar el comando expandir como este:

expand -t2 tab_file > space_file

Convertir solo las pestañas iniciales en espacios

A menudo, en los programas, solo querrá convertir las pestañas principales, es decir, las pestañas al principio de la línea. No desea tocar las pestañas entre las líneas que en realidad son parte del código.

Expand también ofrece esta opción. Si desea convertir solo las pestañas iniciales en espacios, use la opción –i .

Si continuamos con el ejemplo anterior, así es como se vería el comando:

expand -t2 -i tab_file > space_file

Convierta tabulaciones en espacios y guárdelo en el archivo original

En todos los ejemplos anteriores, ha guardado el archivo convertido en un nuevo archivo. Pero si su objetivo es limpiar su código convirtiendo las pestañas en espacios de los archivos de programa existentes, querrá que la salida se guarde en el archivo original.

Para hacer eso, puedes usar el comando esponja. Sponge 'absorbe' toda la entrada estándar antes de escribirla en la salida. Esto es extremadamente útil cuando intenta cambiar y guardar el mismo archivo.

Ahora, es posible que el comando de esponja no esté disponible en su sistema. Tendrás que instalar el paquete moreutils. Debería estar disponible

En distribuciones basadas en Ubuntu/Debian, puede usar este comando para instalar moreutils:

sudo apt install moreutils

Una vez instalado, puede usarlo en la siguiente función:

expand -t2 -i tab_file | sponge tab_file

Convertir tabulaciones en espacios en todos los archivos coincidentes en un directorio

Hasta ahora, todo lo que aprendiste era aplicable a un solo archivo. Pero si tienes un proyecto que tiene varios archivos de programa y quieres convertir las pestañas en espacios en todos ellos, tendrás que ser un poco más inteligente aquí.

Lo que hemos aprendido hasta ahora se puede combinar con los magníficos comandos de búsqueda y ejecución.

find . -name '*.cpp' -type f -exec bash -c 'expand -t 4 "$0" | sponge "$0"' {} \;

El comando anterior encuentra todos los archivos que terminan con la extensión cpp, pasa estos archivos al comando expandir y el comando expandir escribe la salida en los archivos originales con la ayuda del comando esponja.

Puede pensar que usar el comando sed habría sido más fácil en este punto, pero esa es su elección.


Linux
  1. Convierta archivos de audio con este versátil comando de Linux

  2. Comando Linux Tee con ejemplos

  3. Linux expand Command Tutorial para principiantes (con ejemplos)

  4. Tutorial del comando tty de Linux para principiantes (con ejemplos)

  5. ¿Cómo convertir un PDF a JPG con línea de comando en Linux?

Comando Curl en Linux con ejemplos

Comando Echo en Linux con ejemplos

Comando ip de Linux con ejemplos

Comando Tr en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Comando de CD de Linux con ejemplos