Quiero grep smb.conf
y ver solo las líneas que no están comentadas.
Respuesta aceptada:
grep "^[^#;]" smb.conf
El primer ^
se 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 reportar las líneas que no comienzan con #
y ;
(para lo cual usaría grep -v '^[#;]'
) en el sentido de que también excluye empty líneas, pero eso probablemente sea preferible en este caso, ya que dudo que te importen las líneas vacías.
Si quisiera ignorar los caracteres en blanco iniciales, podría cambiarlo a:
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
o
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
O
awk '$1 ~ /^[^;#]/' smb.conf