如何去掉linux配置文件的注释行和空行

如何去掉linux配置文件的注释行和空行,第1张

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

去掉文件中的换行符

(1)tr命令的 *** 作是针对文件的 *** 作,它把整个文本当做 *** 作的对象,所以可以直接去除文件中的换行符

tr '\n' ' ' <file

(2)sed的 *** 作对象是行.而作为行分割符号的回车符,本身是不属于行的.所以sed中必须加上N命令,把下一行的内容添加到当前的pattern space中,这样实际上是把相邻的2行合并了.下一次仍然是先n,再p,再N,开始新的轮回:

cat file | sed 'Ns/\n/ /'

所以上面的语句是不能把文件内容合并为一行的,到底该怎么写,我暂时没有想到,呵呵

(3)直接用awk

awk '{printf("%s ",$0)}' file

(4)当然,用echo也是可以的:

while read linedo echo -n "$line"done <awk_help.txt, 这样,可以把awk_help.txt的内容合并为一行

sed -e "s#\[/r][/r][/n]#\[/r][/n]#g" file


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8500227.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存