[Bash] Mostrar un archivo sin líneas de comentarios

última actualización el 28 de enero de 2009, 01:41 por Carlos-vialfa
Publicado por Carlos-vialfa
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.

PD: El artículo original fue escrito por jipicy, contribuidor de CommentCaMarche
Mejores respuestas para « Mostrar un archivo sin líneas de comentarios » en :
Cómo leer un archivo línea por línea Ver Cómo leer un archivo línea por línea Preámbulo Bucle while Sintaxis Ejemplo Trucos Complemento Bucle for Sintaxis Preámbulo Uno de los errores más comunes cuando se aprende a utilizar los scripts “bash” bajo GNU/Linux para leer un...
Abrir un archivo con extensión .docx Ver Abrir un archivo con extensión .docx Descargar el paquete de compatibilidad de Microsoft Office Descargar XML Translator Haciendo uso de herramientas en línea Para usuarios de Mac Office 2007 incluye un nuevo formato para los...
[MS-Dos] Listar el contenido de un directorio en un archivo VerEn ocasiones puede ser útil listar el contenido uno o varios directorios en un archivo, por ejemplo para tener un catalogo de archivos. Bajo MS-DOS (o bajo Windows en el símbolo del sistema) es posible enviar la salida de un comando a un archivo...
¿Cómo abrir un archivo PPS? (presentación PowerPoint) Ver¿Cómo leer un archivo PPS? Los archivos PPS son diapositivas creadas con el programa PowerPoint. Son simplemente archivos PPT a los que se les ha cambiado la extensión a PPS. Podemos abrirlos: Con el programa Microsoft PowerPoint, de pago. Con...
Guia de uso del Shell para principiantes VerSHELL BASH – GUIA DE USO – Nivel Principiante Introducción Llamado a los miembros de Kioskea II. ¿Qué es el Shell? III. Cómo acceder a la línea de comandos IV. Las consolas virtuales Ejemplo: Acceder a la consola 3 desde la interfaz...
Descargar A-squared Command Line Scanner Vera-squared Command Line Scanner es una gran utilidad para reforzar la seguridad de tu PC. Empezaremos diciendo que el programa es extremadamente liviano, que corre bajo DOS lo que lo hace muy veloz y ademas, es un programa que esta exento de...
Correo electrónico Ver¿Qué es un correo o correo electrónico? Es uno de los servicios en Internet de mayor demanda, pues hace posible el envío de mensajes en forma de archivo de texto. La academia francesa utiliza el vocablo "mél" mientras que los canadienses...
¿Qué es un archivo? Ver¿Qué es un archivo? Un archivo es un conjunto de información binaria; es decir, un conjunto que va de 0 a 1. Este archivo puede almacenarse para mantener un registro de esta información. Un archivo de texto es un archivo que contiene caracteres...
Linux - Shell VerIntroducción a la shell El intérprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razón, se le da el nombre inglés "shell", que significa "caparazón". Por lo tanto, la shell actúa como un intermediario entre el...