Como ya sabemos, en sistemas GNU/Linux, la configuración de muchos servicios se guarda en ficheros de texto dentro del directorio: /etc
Estos ficheros de texto, suelen estar acompañados de comentarios, explicando que hace cada parámetro y su opción por defecto.
En ocasiones, nos puede interesar mostrar los parámetros de configuración del fichero sin mostrar los comentarios.
También el administrador, suele con indicar comentarios de las opciones que modifica.
No mostrar los comentarios de un fichero de configuración, nos puede ayudar a comparar de forma rápida los parámetros de un servicio de un servidor con otro.
Veamos dos ejemplos:
Método1: Linux: grep mostrar lineas sin comentarios
En este ejemplo utilizaremos una expresión regular y el comando grep para filtrar texto.
Ejemplo:
grep ^[^#] /etc/ssh/ssh_config
¿Como se traduce ^[^#]?
Que al principio de linea: Indicado por el primer ^, no contenga (indicado por [^) el carácter #
De hecho, [^, hace referencia a la negación.
Si por ejemplo, quisiéramos ver todas las lineas que contienen un comentario al principio de linea, bastaría con ejecutar:
grep ^[#] /etc/ssh/ssh_config
Método2: Linux: grep mostrar lineas sin comentarios
Ejecutamos:
grep -v "#" /etc/ssh/ssh_config | sed -e '/^$/d'
La primera parte de antes de la tubería:
grep -v "#" /etc/ssh/ssh_config
Muestra el contenido inverso, es decir, busca todas las lineas que contienen la almohadilla referente al comentario.
El problema, es que también nos muestra las lineas en blanco, al no contener la almohadilla.
Es por este motivo que debemos pasar la salida del comando con una tubería al comando sed, que eliminará las lineas en blanco.
Vista ejecución:
Este comentario ha sido eliminado por el autor.
ResponderEliminar¡Muchas gracias por tu comentario!
EliminarUn saludo,
Xavi.
He borrado el anterior comentario por que tenía un error -le faltaba el acento circunflejo al inicio del corchete- lo repito con la correción:
ResponderEliminarEn los ficheros como /etc/ssh/ssh_config en Centos 7 delante de la almohadilla podemos encontrar un espacio, para ello servirá el comando siguiente:
grep ^[^\ #] /etc/ssh/ssh_config
Un saludo Xavier.
Gracias!!
EliminarXavi.
Como el comentario anterior no está, para que lo entiendan los lectores:
EliminarEl comando:
grep ^[^\ #] /etc/ssh/ssh_config
Muestra todas las lineas que no empiecen con almohadilla aunque tengan espacios delante.
¡Gracias Ricardo por tu aporte!
Xavi.