utte39 / 78

設定ファイルからコメント行と空行を取り除く

ホームディレクトリの sample.conf から、行頭が

解説
grep -Ev '^(#|$)' sample.conf > clean.conf

^# は「行頭の #」、^$ は「行頭の直後がすぐ行末」、つまり空行を表します。-E で | を使って両方をまとめ、-v で「一致しない行」だけを出力します。sed '/^#/d;/^$/d' sample.conf でも同じ結果になります。

grep -v '#' のように、位置を指定せずに # を探すと、port = 8080 # default port のような行の途中にある # にも一致して、設定の行まで消えてしまいます。^ と $ で位置を指定するのが、正規表現を使う大事なところです。設定ファイルの確認によく使うので覚えておきましょう。

使うコマンド

関連する問題