25/10/13

Linux: ver archivo de config sin comentarios

http://es.kioskea.net/faq/2136-bash-mostrar-un-archivo-sin-lineas-de-comentarios

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 motorNFA (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.

No hay comentarios:

Publicar un comentario