首页 > 代码库 > 001_自定义过滤及添加文件内容脚本(nginx)
001_自定义过滤及添加文件内容脚本(nginx)
一、工作中遇到sed添加及修改在nginx末尾添加太麻烦了
需求:随意查找添加一条以前不存在的内容加到"}"前一行
实现:
#!/usr/bin/env python # coding=utf-8 import sys,os from optparse import OptionParser parse = OptionParser() parse.add_option("-c", "--context", help="add one line contexts",default="xxxhtxxxtps_status") parse.add_option("-f", "--file", help="modify file",default="/006_eleallproject/002_surveypro/001_nginxdevops/002_camel-agent-deploy/camel-agent-deploy2.0/nginx.conf") (options, args) = parse.parse_args() content = options.context file = os.path.realpath(options.file) #content="x$https_status" #file=‘/006_eleallproject/002_surveypro/001_nginxdevops/002_camel-agent-deploy/camel-agent-deploy2.0/nginx.conf‘ print options _list_content=[] m = 0 count = 0 #获取"}"的位置 try: fh = open(file, ‘rb‘) for n in fh.readlines(): m += 1 if (n.find(‘}‘) >= 0): global count count = m _list_content.append(n) else: _list_content.append(n) finally: fh.close() #在"}"位置前添加内容 n = 0 ngconf = open(file, ‘rb‘) for s in ngconf.readlines(): n += 1 if s.find(‘}‘) >= 0 and n >= count-1: #在以前的列表中有任何可以找到的内容都不会添加 result = any([str(line.strip()).find(content) >=0 for line in _list_content]) if not result: _list_content.insert(count-1, content+"\n") ngconf.close() #写入文件 end_nginx_f = open(file, ‘wb‘) end_nginx_f.writelines(_list_content) end_nginx_f.close()
001_自定义过滤及添加文件内容脚本(nginx)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。