页面“Shell去除注释行和空行”与“Shell常用技能”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
(导入1个版本)
 
docker>Evan
 
第1行: 第1行:
shell去除注释行和空行,查看配置文件中未被注释的有效配置行
+
=sed=
 
 
==举例==
 
<pre>#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 \^$
 
 
 
</pre>
 
 
 
== sed ==
 
<pre>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]* // </pre>
 
 
 
 
 
 
 
==Linux不显示注释行==
 
 
<pre>
 
<pre>
 +
shell在文本第一行和最后一行添加字符串
 +
sed '1i 添加的内容' file  #这是在第一行前添加字符串 
 +
sed '$i 添加的内容' file  #这是在最后一行行前添加字符串 
 +
sed '$a添加的内容' file  #这是在最后一行行后添加字符串 
 +
</pre>
  
cat file | grep -v ^# | sort -u
+
=?=
 
 
# sort -u (去掉重复行)
 
</pre>
 
==grep==
 
 
<pre>
 
<pre>
grep "^\s*[^# \t].*$" /etc/zabbix/zabbix_agentd.conf
+
PREFIX?=/usr/local
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
 
  
 +
Makefile中的“?=”表示,如果该变量之前没有定义过,则赋值为/usr/local,否则什么也不做
 
</pre>
 
</pre>
 
==过滤注释行==
 
<pre>
 
cat php-fpm.conf | grep -v "^;"|grep -v ^$
 
</pre>
 
 
==参考==
 
用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
 
 
 
[[category:shell]] [[category:ops]]
 
[[category:shell]] [[category:ops]]

2019年8月18日 (日) 13:21的版本

sed

shell在文本第一行和最后一行添加字符串
sed '1i 添加的内容' file  #这是在第一行前添加字符串  
sed '$i 添加的内容' file  #这是在最后一行行前添加字符串  
sed '$a添加的内容' file  #这是在最后一行行后添加字符串  

?

PREFIX?=/usr/local

Makefile中的“?=”表示,如果该变量之前没有定义过,则赋值为/usr/local,否则什么也不做