Bash - Mostrar un archivo sin líneas de comentarios

Mayo 2017

A veces es conveniente mostrar un archivo sin tener que mostrar la infinidad de líneas de comentarios incluidos en él (en particular en los archivos de configuración de nuestro sistema operativo), ni las líneas vacías.

A continuación veremos tres formas de hacerlo:


Grep


Primero veremos el comando “egrep” (o “Grez –E”):
egrep -v '^(#|$)'  /etc/samba/smb.conf

grep -E -v '^(#|$)'  /etc/samba/smb.conf

Aquí en este ejemplo no apareceran las líneas que comienzan con el signo almohadilla (#) o con el carácter de control de fin de línea ($).

Si fuera necesario que el delimitador de comentarios no sea colocado al inicio de línea sino mas atrás (espacio o tabulación), o que el archivo incluya otros caracteres delimitadores como el punto y coma (;), es posible mejorar la expresión racional de este modo:
grep -E -v '^(#|;|$|[ ]*#)' /etc/samba/smb.conf 

Sed


En segundo lugar veremos el comando “sed”:
sed -e '/^[ ]*#/d' -e '/^$/d' /etc/samba/smb.conf

Aquí primero se eliminan las líneas que comienzan con un espacio o el signo almohadilla, luego se eliminan todas las líneas vacías.

Claro que como en el ejemplo anterior podemos mejorar nuestro comando incluyendo otros caracteres, como el punto y coma, lo que daría como resultado:
sed -e '/^[ ]*#/d' -e '/^[ ]*;/d' -e '/^$/d' /etc/samba/smb.conf

Perl


El tercer comando que veremos es el comando “perl”:

Tanto en grep, egrep, sed, python, como en perl, siempre es regex que se encarga de hacerlo.
Ahora solo nos queda estudiar la implementación de regex y el motor utilizado por lo usuarios.
Es sabido por ejemplo que un motor DFA (Deterministic Finite Automation) es más rápido que un motor NFA (Nondeterministic Finite Automation).
En cambio el motor NFA nos permite orientar el regex para obtener el resultado buscado, este es un entorno de creatividad que no se encuentra con un motor DFA.
perl -ne 'print unless /^\s*[;\$#]|^$/' fichier_config

Los comandos sed y grep utilizan la sintaxis de las expresiones regulares. Podrás encontrar más información al respecto en Internet.

Consulta también

Publicado por Carlos-vialfa. Última actualización: 28 de enero de 2009 a las 01:41 por Carlos-vialfa.
El documento «Bash - Mostrar un archivo sin líneas de comentarios» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.