要求:1)在某一配置文件中查到到匹配udp(ip("0.0.0.0") port (514)) 这行;2)去掉这行的注释符#
就像shell脚本实现自动修改打开允许root登录一样~(修改sshd_config ,去掉"#permit root login yes”这行注释)
谢谢你的回答,而且你考虑很详细包括有没有截取到都做了判断,有命令行可以解决么?
追答你可以把上述内存存成一个文件,然后chmod 755 文件,直接运行那个文件就可以了。
我的理解是你要自动把配置文件里的#去掉,然后再写回原文件,对吧?如果不是的话,请说明,那样就不用这么复杂了。
grep "#udp(ip(\"0.0.0.0\") port (514))" test.sh | sed -i 's/^#//g' test.sh
你这个grep "#udp(ip(\"0.0.0.0\") port (514))" test.sh并没有实现,所以文件中#开头全截取没了,我只要那一行。再修改修改
把test换成你要编辑的文件名,你在试一下吧。
谢谢,请问sed后面每个参数及符号是什么意思,能详细赐教下么~man手册看了下,还是有些疑惑~不胜感激
追答\( \) 可以实现标记内容,在后边实现引用,从左边到右边第一个就是\1,第二个就是\2
PS:哥们,我女朋友急用积分,----觉得可以就赶紧给积分呗...
参考资料:sed 与 awk 详解
本回答被提问者采纳