¿Cómo grep líneas que no comienzan con "#" o ";"?

Pregunta:

Quiero grep smb.conf y ver solo las líneas que no están comentadas.

Respuesta:

grep "^[^#;]" smb.conf

El primer ^ refiere al comienzo de la línea, por lo que no se excluirán las líneas con comentarios que comiencen después del primer carácter. [^#;] significa cualquier carácter que no sea # o ; .

En otras palabras, informa líneas que comienzan con cualquier carácter que no sea # y ; . No es lo mismo que informar las líneas que no comienzan con # y ; (para lo cual usaría grep -v '^[#;]' ) ya que también excluye las líneas vacías , pero probablemente sea preferible en este caso ya que dudo que le importen las líneas vacías.

Si desea ignorar los caracteres en blanco iniciales, puede cambiarlo a:

grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf

o

grep -vxE '[[:blank:]]*([#;].*)?' smb.conf

O

awk '$1 ~ /^[^;#]/' smb.conf

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım