Shell去除注释行和空行

来自linux中国网wiki
docker>Evan2019年8月23日 (五) 03:55的版本 →‎grep
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

shell去除注释行和空行,查看配置文件中未被注释的有效配置行

举例

#php 配置文件 
cat php.ini | grep -v  ^\; 

#php 配置文件  去除注释和空行 
grep -E  -v '^\;|^$' php.ini
cat php.ini | grep -v \;|sed '/^$/d' >

#常用这个
cat httpd | grep -v# | grep -v ^$

 cat  /etc/salt/minion    |  grep -v   \^# | grep -v \^$

 

sed

1,sed删除空行
 sed '/^$/d' file

2.
(1)sed删除行首的空格
#删除所有行的首空字符
sed -i 's/^[[:space:]]*//' filename

sed -i 's/[[:space:]]*//g' filename ##删除所有空格
sed s/[[:space:]]//g filename
#sed 's/^[ ]*//g' file
#sed 's/^ *//g' file
#sed 's/^[[:space:]]*//g' file

(2)#删除所有行尾空字符 ,这个也是在处理配置文件是很不错的
sed -i 's/[[:blank:]]+$//' filename

awk -F':' '{print $1":"$2}' file

3.删除行的首数字
sed -i 's/^[0-9]*//g' filename
sed 's#^[0-9]{1,} ##g' filename
sed 's#^[0-9]* ##g' filename
.在vim 中
#删除行的首数字
%s/^[0-9][0-9]* // 


Linux不显示注释行


cat file | grep -v ^# | sort -u 

# sort -u (去掉重复行)

grep

 grep "^\s*[^# \t].*$" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=19.96.1.95
ServerActive=19.96.1.95
Hostname=prod-java-03
Include=/etc/zabbix/zabbix_agentd.d/*.conf

过滤注释行

cat php-fpm.conf | grep -v "^;"|grep -v ^$

参考

用sed删除行首行尾的空格和Tab http://blog.linuxchina.net/?p=1313 http://mubawa.iteye.com/blog/842173 http://bbs.chinaunix.net/thread-989402-1-1.html

https://linux.cn/article-6958-1.html