Linux中国
grep 命令系列:如何只查看配置文件中未被注释的有效配置行
![](https://linuxstory.org/wp-content/uploads/2024/06/143321m5gfoa1uicniv7dz-578x400.jpg)
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."
}
示例输出:
图 01: Unix/Linux Egrep 除去注释行和空行
理解 grep/egrep 命令行选项
-v 选项,选择出不匹配的命令行。该选项适用于所有基于posix的系统。正则表达式 ^$
匹配出所有的非空行, ^#
匹配出所有的不以“#”开头的非注释行。
sed 命令示例
可以按照如下示例使用 GNU 上的 sed 命令:
$ sed '/ *#/d; /^ *$/d' /path/to/file
$ sed '/ *#/d; /^ *$/d' /etc/apache2/apache2.conf
GNU 或 BSD 上的 sed 也可以修改配置文件。下面的命令的作用是原地编辑文件,并以特定(比如 .bak)备份文件:
sed -i'.bak.2015.12.27' '/ *#/d; /^ *$/d' /etc/apache2/apache2.conf
via: http://www.cyberciti.biz/faq/shell-display-uncommented-lines-only/
作者:Vivek Gite 译者:sonofelice 校对:wxy
本文转载来自 Linux 中国: https://github.com/Linux-CN/archive
对这篇文章感觉如何?
太棒了
0
不错
0
爱死了
0
不太好
0
感觉很糟
0
More in:Linux中国
如何通过 VLC 使用字幕
使用 VLC 媒体播放器播放和管理字幕的新手指南。
Unix 桌面:在 Linux 问世之前
仅仅开源还不足以实现开放,还需开放标准和建立共识。
Valve 对于 Ubuntu 的 Snap 版本的 Steam 并不满意:原因何在
你可能会发现,Snap 版本的 Steam 并不如你期待的那样好,你怎么看?
Wine 9.0 发布,实验性地加入了 Wayland 驱动
Wine 的这个新版本正在为未来做好准备!