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