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