试图在python结构中注释掉文本文件中的一行。正则表达式适用于任何没有ip1或ip2的@符号。模式搜索得很好并找到该行,除了打印"#+ line"它打印"#@#bad_Ip_here"。所以它应该是:
#*.info;mail.none;stuff.none;cron.none @bad_ip
但打印
*.info;mail.none;stuff.none;cron.none #@#@bad_ip
只是两次打印注释行,这很好。我不知道错误或改变了什么。我试图强迫它插入位置0
line = line[:0] + "#" + line[0:]
但这也没有奏效。
def addcomments():
ip1 = '10.31.xx.xxx'
ip2 = '10.30.xx.xx'
host = env.host_string
conf = open('/home/myuser/verify_yslog_conf/%s/hi.txt' % host, 'r')
f = conf.read()
conf.close()
comment = open('/home/myuser/verify_yslog_conf/%s/hi.txt' % host, 'w')
for line in f:
if re.search(r'(@(?!({0}|{1})))'.format(ip1, ip2), line):
line = "#" + line
comment.write(line)
comment.write(line)
comment.close()
感谢