Je veux grep smb.conf
et ne voir que les lignes qui ne sont pas commentées.
Réponse acceptée :
grep "^[^#;]" smb.conf
Le premier ^
fait référence au début de la ligne, ainsi les lignes avec des commentaires commençant après le premier caractère ne seront pas exclues. [^#;]
signifie tout caractère qui n'est pas #
ou ;
.
En d'autres termes, il signale les lignes qui commencent par n'importe quel caractère autre que #
et ;
. Ce n'est pas la même chose que de signaler les lignes qui ne commencent pas par #
et ;
(pour lequel vous utiliseriez grep -v '^[#;]'
) en ce qu'il exclut également empty lignes, mais c'est probablement préférable dans ce cas car je doute que vous vous souciez des lignes vides.
Si vous vouliez ignorer les premiers caractères blancs, vous pourriez le changer en :
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
ou
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
Ou
awk '$1 ~ /^[^;#]/' smb.conf