Linux中國

grep 命令系列:如何只查看配置文件中未被注釋的有效配置行

grep 命令示例——去掉注釋

可以按照如下示例使用grep命令:

$ grep -v "^#" /path/to/config/file
$ grep -v "^#" /etc/apache2/apache2.conf

示例輸出:

ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock

PidFile ${APACHE_PID_FILE}

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_event_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

AccessFileName .htaccess

<Files ~ "^.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

DefaultType text/plain

HostnameLookups Off

ErrorLog /var/log/apache2/error.log

LogLevel warn

Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined
LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

想要跳過其中的空行,可以使用 egrep 命令, 示例:

egrep -v "^#|^$" /etc/apache2/apache2.conf
## or pass it to the page such as more or less ##
egrep -v "^#|^$" /etc/apache2/apache2.conf | less

## Bash function ######################################
## or create function or alias and use it as follows ##
## viewconfig /etc/squid/squid.conf                  ##
#######################################################
viewconfig(){
   local f="$1"
   [ -f "$1" ] && command egrep -v "^#|^$" "$f" || echo "Error $1 file not found."
}

示例輸出:

Fig.01: Unix/Linux Egrep Strip Out Comments Blank Lines

圖 01: Unix/Linux Egrep 除去注釋行和空行

理解 grep/egrep 命令行選項

-v 選項,選擇出不匹配的命令行。該選項適用於所有基於posix的系統。正則表達式 ^$ 匹配出所有的非空行, ^# 匹配出所有的不以「#」開頭的非注釋行。

sed 命令示例

可以按照如下示例使用 GNU 上的 sed 命令:

$ sed &apos;/ *#/d; /^ *$/d&apos; /path/to/file
$ sed &apos;/ *#/d; /^ *$/d&apos; /etc/apache2/apache2.conf

GNU 或 BSD 上的 sed 也可以修改配置文件。下面的命令的作用是原地編輯文件,並以特定(比如 .bak)備份文件:

sed -i&apos;.bak.2015.12.27&apos; &apos;/ *#/d; /^ *$/d&apos; /etc/apache2/apache2.conf

更多信息見參考手冊 - grep(1), sed(1)

via: http://www.cyberciti.biz/faq/shell-display-uncommented-lines-only/

作者:Vivek Gite 譯者:sonofelice 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國