設定ファイルのコメントと空行以外を出力する

OSSなどを使っていると、プロダクトにデフォルトで付属している設定ファイルは、丁寧に説明書きがされているケースが多く、コメントアウトされている行が多いです。

馴染みがあるのは、Apacheの設定ファイル(httpd.conf)でしょうか。結構細かくコメントが書かれていますよね。


で、それをそのまま使うのも、どうかという話なんですが、じっくり設定を確認したい場合、そのあたりのコメントが結構ウザい時もあります。(スミマセン)

というわけで、grepコマンドを使って、それらを排除した(取り除いた)状態で出力して確認してみます。

$ grep -v -e '#' /etc/httpd/conf/httpd.conf


やり方は、上記のコマンドのような感じ。
"-v"は、結果を反転し、マッチしなかった行を選択するオプション。"-e"の後に、マッチするパターンを記述します。


さらに、空行も除いた状態で出力したい場合は、以下。

$ grep -v -e '#' -e '^$' /etc/httpd/conf/httpd.conf


空行も無くなるので、少し見辛い可能性もありますが、余分な行は一切なくなります。
どんな感じで出力されるかを、以降で簡単に紹介します。

おまけで、10行分だけ出力例

FedoraでApacheをyum経由でインストールした場合の、デフォルトのhttpd.confを例に。

$ cat /etc/httpd/conf/httpd.conf | head -n 10
#
# This is the main Apache server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.2/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.
#
#
# Do NOT simply read the instructions in here without understanding

ファイルの頭はひたすらコメントなので、↑の通りです・・・。

$ grep -v -e '#' /etc/httpd/conf/httpd.conf | head -n 10


ServerTokens OS

ServerRoot "/etc/httpd"

PidFile run/httpd.pid

Timeout 120

コメントアウトを取り除いてみました。設定の一部が順に出力されています。
が、各設定間に空行が1〜3行入ります。

$ grep -v -e '#' -e '^$' /etc/httpd/conf/httpd.conf | head -n 10
ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers       8
MinSpareServers    5

空行も取り除いた状態で出力です。
若干読みづらいかもしれませんが、余分な行は一切入っていない状態です。


よろしければ、お好みに合わせてどうぞ。


【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)

【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)