python re删除匹配行

简介:
1
2
3
4
re. compile (strPattern[, flag]):
这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象。
第二个参数flag是匹配模式,取值可以使用按位或运算符 '|' 表示同时生效,比如re.I | re.M。
另外,你也可以在regex字符串中指定模式,比如re. compile ( 'pattern' , re.I | re.M)与re. compile ( '(?im)pattern' )是等价的。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
xxx.com文件内容
$TTL 600 ; 1 day
@               IN SOA  ns1.xxxx.com. root.xxxx.com.(
                         1002766  ; Serial
                         3600            ; Refresh (1 hour)
                         900             ; Retry (15 minutes)
                         3600000         ; Expire (5 weeks 6 days 16 hours)
                         3600            ; Minimum (1 hour)
                         )
@       2D      IN      NS      ns1.xxxx.com.
@       2D      IN      NS      ns2.xxxx.com.
$ORIGIN xxxx.com.
;;
                            IN MX 5  mxbiz1.qq.com.
                            IN MX 10 mxbiz2.qq.com.
                            IN TXT    "v=spf1 include:spf.mail.qq.com ~all"
auth                       IN MX 5  mail.pub.jumei.com.
auth                       IN TXT    "v=spf1 ip4:x.x.x.x/24 ip4:x.x.x.x/24 ~all"
stk                        IN CNAME office.reemake.net.
signontest                 IN CNAME xxx.xxxx.com.
qqmaile33f7f2c             IN CNAME mail.qq.com.
*.kbs                      IN A     192.168.20.222
flow  IN  A  192.168.49.10
maven  IN  A  192.168.49.9
auth     IN      A       192.168.49.11
auth     IN      A       192.168.49.12
lynx-auth      IN      A   192.168.49.13
lynx-auth      IN      A   192.168.49.14



1
vim dns.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python
import  sys
import  re
import  os
 
if  __name__  = =  '__main__' :
     content  =  []
     with  open ( 'xxx.com' , 'r' ) as f:
         with  open ( 'xxx.com.bak' 'w' ) as g:
             #读取原文件行
             for  content  in  f.readlines():
                 #把执行脚本的第一个参数赋予变量x
                 =  sys.argv[ 1 ].strip()
                 #匹配拼接以x变量 + 多空格 IN 多空格 A 开头的行 
                 #其中 r'' 是对引号中的字符串,保留字面,不进行转义
                 =  re. compile (r '^' + x + r '\s.+IN\s.+A' )
                 #p = re.compile(r'^'+x+r'\w*\s.+IN\s.+A')
                 #最后使用Match实例获得信息,如果不匹配re条件,写把行写到bak文件
                 if  not  p.match(content):
                         g.write(content)
         #移动bak文件覆盖原来的老文件
         os.rename( 'xxx.com.bak' , 'xxx.com' )
         =  sys.argv[ 1 ].strip()
         =  sys.argv[ 2 ].strip()
         =  sys.argv[ 3 ].strip()
         g.write( "%s\tIN\tA\t%s\n"  %  (o,v))
         g.write( "%s\tIN\tA\t%s\n"  %  (o,q))
1
2
3
4
5
6
7
8
# ./dns.py auth 192.168.6.69 192.168.6.80
# diff xxx.com xxxx.com.bak
636,637d635
< auth      IN    A     x.x.x.x
< auth      IN    A     x.x.x.x
801a800,801
> auth  IN  A   192.168.6.69
> auth  IN  A   192.168.6.80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# cat test 
wms.web
wms.rf
wms.worker
report.web
report.worker
admin
invoice.web.center
invoice.worker.center
invoice.web. cd
invoice.worker. cd
jlsext
jls
jlsworker
uds
udsworker
separate
1
# for i in `cat test`;do ./dns.py $i 10.1.27.49 10.1.27.51;done















本文转自谢无赖51CTO博客,原文链接:http://blog.51cto.com/xieping/1899918  ,如需转载请自行联系原作者

相关文章
|
6月前
|
Python
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r&#39;string&#39;`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
64 3
|
6月前
|
Python Windows
【Python进阶必备】一文掌握re库:实战正则表达式
【Python进阶必备】一文掌握re库:实战正则表达式
134 0
|
18天前
|
Python
Python 中常用的内置模块之`re`模块
【10月更文挑战第11天】 `re` 模块是 Python 内置的正则表达式处理工具,支持模式匹配、搜索、替换等功能。通过 `search`、`match`、`findall` 和 `sub` 等函数,结合正则表达式的元字符、分组、贪婪模式等特性,可高效完成文本处理任务。示例代码展示了基本用法,帮助快速上手。
14 1
|
2月前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
33 2
|
3月前
|
Python
|
4月前
|
存储 程序员 Python
小白也能用的代码!1行Python,把PPT转成1张长图
大家好,我是程序员晚枫。今天介绍`python-office`库的新功能:仅用1行Python代码将PPT转为单张长图。
78 11
 小白也能用的代码!1行Python,把PPT转成1张长图
|
3月前
|
Python
告别死记硬背:掌握Python正则表达式re模块的高效应用&[面向百度编程]
Python中正则表达式的高效应用,通过内置的`re`模块,讲解了如何匹配、提取和替换字符串,并提供了相关示例代码,同时提倡通过实践来掌握正则表达式的使用,而不是仅仅依赖网络搜索。
42 1
|
3月前
|
SQL 分布式计算 算法
【python】python指南(三):使用正则表达式re提取文本中的http链接
【python】python指南(三):使用正则表达式re提取文本中的http链接
26 0
|
5月前
|
数据采集 Web App开发 数据处理
一步步教你用Python Selenium抓取动态网页任意行数据
使用Python Selenium爬取动态网页,结合代理IP提升抓取效率。安装Selenium,配置代理(如亿牛云),设置User-Agent和Cookies以模拟用户行为。示例代码展示如何使用XPath提取表格数据,处理异常,并通过隐式等待确保页面加载完成。代理、模拟浏览器行为和正确配置增强爬虫性能和成功率。
417 3
一步步教你用Python Selenium抓取动态网页任意行数据
|
4月前
|
开发者 Python
【Python】已完美解决:ERROR: Could not find a version that satisfies the requirement re
【Python】已完美解决:ERROR: Could not find a version that satisfies the requirement re
316 0