如何去掉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配置文件的注释行和空行的主要内容,如果未能解决你的问题,请参考以下文章

linux过滤旧文件中的空行和注释行剩余内容组成新文件

linux 如何将一行注释掉

解决配置文件注释太多的方法

解决配置文件注释太多的方法

删除PHP配置文件中的注释行

删除PHP配置文件中的注释行