如何去掉linux配置文件的注释行和空行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何去掉linux配置文件的注释行和空行相关的知识,希望对你有一定的参考价值。
1、使用grep -v "^#" 来去掉注释行,其中:-v 就是取相反的 ^# 表示以#开头的行eg. grep -v "^#" /etc/vsftpd/vsftpd.conf (也可以使用“>”来重写配置文件)
2、有时也会连同空行一起去掉,使用管道符来完成(^$表示空行 )
eg. grep -v "^#" httpd.conf | grep -v "^$" >> vsftpd.conf
上面用了 2次 grep 过滤命令 ,也就是把空行和注解行过滤掉,再把剩下的内容追加保存为原
来的配置文件 vsftpd.conf 这个时候就文件里的内容就没有注解行和空行了,,,,
3、备注:在更改配置文件时,建议先对配置文件做一下备份,对配置文件不熟悉的建议不要用这种方法,配置文件中的注解行还是有一定的帮助的。
cp -a httpd.conf httpd.conf.bak 参考技术A 1、使用grep -v "^#" 来去掉注释行,其中:-v 就是取相反的 ^# 表示以#开头的行
eg. grep -v "^#" /etc/vsftpd/vsftpd.conf (也可以使用“>”来重写配置文件)
2、有时也会连同空行一起去掉,使用管道符来完成(^$表示空行 )
eg. grep -v "^#" httpd.conf | grep -v "^$" >> vsftpd.conf
上面用了 2次 grep 过滤命令 ,也就是把空行和注解行过滤掉,再把剩下的内容追加保存为原
来的配置文件 vsftpd.conf 这个时候就文件里的内容就没有注解行和空行了,,,,
3、备注:在更改配置文件时,建议先对配置文件做一下备份,对配置文件不熟悉的建议不要用这种方法,配置文件中的注解行还是有一定的帮助的。
cp -a httpd.conf httpd.conf.bak
4、shell储备知识:
^一行的开始 ^d以开头的 ^..1 第三个为1的字符 ^字符要放在匹配的字符前面
$一行的末尾 ^$ 表示空行 ^.$匹配一行一个字符的 $字符要放在匹配的字符后面
*匹配任意个字符 包括0个字符 .表示单个字符
\可以屏蔽一个特殊的字符 \*\.pas 这里的*是特殊字符,这样就表示*.pas这个文件
逗号可以分割不同的匹配字符如[S,s]表示S或者s都可以
-表示一个范围,[1-9],[a-z],[A-Z] [1-9 A-Z a-z]任意的字符或者数字
A\2\B 表示A出现了2次 AAB
A\4,\B 表示A至少出现4次 AAAAB,AAAAAB
A\2,4\B 表示A出现2-4次 AAB AAAB AAAAB
[0-9]\3\\.[0-9]\3\\.[0-9]\3\\.[0-9]\3\ 0-999.0-999.0-999.0-999
cat server.conf |grep -v "^[#,;]" |grep -v "^$"本回答被提问者和网友采纳 参考技术B 1.more 文件|grep -v '^#'|grep -nv '^$'
2.grep -v '^#\|^$' -n 文件
3.grep ^[^#] -n 文件
4.sed -e '/^#\|^$/d' -e '=' 文件 参考技术C grep -vE "^#|$" /etc/vsftpd/vsftpd.conf
笑死 参考技术D cat file |grep-v ^# |grep -v ^$ >>newfile
Linux脚本练习之script064-去掉空行
script064
题目
题目来源于 SHELL6 去掉空行 。
写一个 bash 脚本以去掉一个文本文件 nowcoder.txt
中的空行。
示例,假设 nowcoder.txt 内容如下:
abc
567
aaa
bbb
ccc
你的脚本应当输出:
abc
567
aaa
bbb
ccc
脚本一
这里采用的是匹配空行然后删除空白行,最后剩下的就是非空行。其中 ^$
表示匹配空行;d
命令表示删除匹配行。
sed '/^$/d' nowcoder.txt
脚本二
awk
命令可以找出文件中的非空行,其中 /[^\\s]/
表示匹配非空行(^\\s
表示匹配以非空字符开头的所有行);然后使用 print $0
表示打印非空行。
awk '/[^\\s]/print $0' nowcoder.txt
脚本三
同样使用正则表达式匹配文件中的非空行,通过 grep -E
命令查找。
grep -E "[^\\s]+" nowcoder.txt
脚本四
使用 awk
命令完成。
cat nowcoder.txt | awk NF
脚本五
使用 sed
命令只打印匹配到正则表达式的行。
sed -n '/[^$]/p' nowcoder.txt
脚本六
使用 grep
命令匹配空行,然后使用 -v
选项表示反选非空行。
grep -v '^$' nowcoder.txt
脚本七
循环读取文件中的每一行,然后用 -n
判断该行是否是非空行,如果是则进行输出。
#!/bin/bash
i=0
while read line; do
i=$(($i+1))
if [ -n "$line" ]; then
echo "$line"
fi
done < nowcoder.txt
脚本八
使用 awk
进行编程,通过 length()
函数判断遍历的行是否是非空行,如果是则进行输出。
awk 'if(length($0)!=0) print $0' nowcoder.txt
以上是关于如何去掉linux配置文件的注释行和空行的主要内容,如果未能解决你的问题,请参考以下文章