import re
import glob
import os
list_of_files = glob.glob('10.123.130*.txt')
pattern = re.compile(r"^\S+ \S+ \S+ 205\d+.*$")
extract_on = False
extracts_eds_upe = []
for fileName in list_of_files:
with open(fileName, 'r') as myfile:
print(myfile)
#lines = myfile.readlines()
for line in myfile:
if pattern.search(line) :
extract_on = True
extracts_eds_upe.append((line.rstrip('\n')))
with open(os.path.join(r'D:\Python Project\DRP\UPE', os.path.basename(fileName)), 'w') as mytext:
for line in extracts_eds_upe :
mytext.write("undo ")
mytext.write(line)
mytext.write('\n')
------输入文件#1------
#
FTP server-source -i LoopBack0
FTP client-source -i LoopBack0
#
info-center loghost source LoopBack0
mpls switch-l2vc 10.123.146.97 205148001 tunnel-policy TE between 10.123.130.1 205148003 tunnel-policy TE backup 10.123.130.2 205148003 tunnel-policy TE encapsulation vlan
mpls switch-l2vc 10.124.24.165 205495401 tunnel-policy TE between 10.123.130.1 205495403 tunnel-policy TE backup 10.123.130.2 205495403 tunnel-policy TE encapsulation vlan
mpls switch-l2vc 10.123.146.53 205145401 tunnel-policy TE between 10.123.130.1 205145403 tunnel-policy TE backup 10.123.130.2 205145403 tunnel-policy TE encapsulation vlan
mpls switch-l2vc 10.123.146.49 213145001 tunnel-policy TE between 10.123.130.1 213145003 tunnel-policy TE backup 10.123.130.2 213145003 tunnel-policy TE encapsulation vlan
#
------输入文件#2------
#
FTP server-source -i LoopBack0
FTP client-source -i LoopBack0
#
info-center loghost source LoopBack0
mpls switch-l2vc 10.123.146.85 205148001 tunnel-policy TE between 10.123.130.1 205148003 tunnel-policy TE backup 10.123.130.2 205148003 tunnel-policy TE encapsulation vlan
mpls switch-l2vc 10.124.24.16 205495401 tunnel-policy TE between 10.123.130.1 205495403 tunnel-policy TE backup 10.123.130.2 205495403 tunnel-policy TE encapsulation vlan
mpls switch-l2vc 10.123.146.49 213145001 tunnel-policy TE between 10.123.130.1 213145003 tunnel-policy TE backup 10.123.130.2 213145003 tunnel-policy TE encapsulation vlan
#
-----------期望输出文件#1-----------------
mpls switch-l2vc 10.123.146.97 205148001 tunnel-policy TE between 10.123.130.1 205148003 tunnel-policy TE backup 10.123.130.2 205148003 tunnel-policy TE encapsulation vlan
mpls switch-l2vc 10.124.24.165 205495401 tunnel-policy TE between 10.123.130.1 205495403 tunnel-policy TE backup 10.123.130.2 205495403 tunnel-policy TE encapsulation vlan
mpls switch-l2vc 10.123.146.53 205145401 tunnel-policy TE between 10.123.130.1 205145403 tunnel-policy TE backup 10.123.130.2 205145403 tunnel-policy TE encapsulation vlan
-----------期望输出文件#2-----------------
mpls switch-l2vc 10.123.146.85 205148001 tunnel-policy TE between 10.123.130.1 205148003 tunnel-policy TE backup 10.123.130.2 205148003 tunnel-policy TE encapsulation vlan
mpls switch-l2vc 10.124.24.16 205495401 tunnel-policy TE between 10.123.130.1 205495403 tunnel-policy TE backup 10.123.130.2 205495403 tunnel-policy TE encapsulation vlan
我在文件中有多个文本文件和搜索模式,然后写入新文件。但现在输出多个文本的结果是相同的,实际上应该不一样。 现在的问题是,当读取文本文件并匹配目标的模式,然后写入新文件,然后读取第二个文件并匹配模式,然后再写入文件,但当写入第二个文件时,会从第二个文件开始添加第二个文件,我不希望这样,我希望在每个文件输出中分离结果模式,任何人都可以帮我
我只是稍微修改了你的代码,请看,它应该可以工作
单线分解器,仅供参考:
说明:
find . -type f -name "10.123.130*.txt"
,列出当前目录下所有匹配的文件李>xargs -I{} sh -c
,将find
结果按行拆分,并将它们逐个传递给下一个grep
李>grep -E '^\S+ \S+ \S+ 205\d+.*$'
,按regex匹配内容并输出到stdout李>> {}.result
,将grep
结果重定向到名为source filename且后缀为.result
的新文件李>享受吧
相关问题 更多 >
编程相关推荐