smb.conf
grepでコメントされていない行だけを見たいです。
答え1
grep "^[^#;]" smb.conf
最初は^
行の始まりを意味するので、最初の文字の後にコメントで始まる行は除外されません。または以外のすべての文字を[^#;]
表します。#
;
つまり、および以外の文字で始まる#
行を報告します;
。#
(;
使用する)で始まらないレポートラインとは異なりますgrep -v '^[#;]'
。空いいですね。しかし、この場合は空行に興味があるかどうか疑わしいので、おそらくより良い選択肢でしょう。
先行する空白文字を無視するには、次のように変更できます。
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
または
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
または
awk '$1 ~ /^[^;#]/' smb.conf
答え2
Wimソリューション:
:v/^\s*[#\n]/p
私はvimソリューションを直接見つけようとし、この問題を偶然見つけました。
答え3
Oliver nadjの回答にあるgrepパイプは、以下を介して削除できます(GNUgrep
または互換性があると仮定)。
grep -v "^\s*[#\;]\|^\s*$" <some_conf_file>
答え4
grep -v "^\s*[#;]" any.conf | grep -v "^\s*$"
これは私にとって効果的です。コメントや空白行を無視し、ハッシュマークやセミコロンの前のスペースも無視します。