我已经尝试了几种不同的方法,并且仍在努力,但也许为了这个项目的时间,我可以很快得到指示。任何建议表示赞赏。
循环遍历文件,每当我看到 ===r(xxxx).(xxxx).(xxxx) 时,我需要将 r(xxxx).(xxxx).(xxxx) 附加到包含单词 remark 的每一行直到它到达包含备注的下一行 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -=,然后冲洗并重复直到文件末尾...
Example file .txt to loop:
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
access-list r1999-outside-in remark ===r9920.4001.886
access-list r1999-outside-in remark Access from Test Network
access-list r1999-outside-in extended permit tcp xxx.xxx.xxx.xxx 255.255.255.128 x.x.32.160 255.255.255.248 eq 4343
access-list r1999-outside-in remark auth1.this.that
access-list r1999-outside-in extended permit ip host x.x.33.39 x.x.32.160 255.255.255.248
access-list r1999-outside-in remark Access to Mgmt from VPN
access-list r1999-outside-in extended permit tcp object-group VPN-NETWORK-NO-PROXY x.x.x.x 255.255.255.248 eq 4343
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
access-list r1999-outside-in remark ===r9930.9975.1296 - Wireless Controllers
access-list r1999-outside-in extended permit object-group TFTP host x.x.33.203 x.x.33.160 255.255.255.248
access-list r1999-outside-in remark Access to Mgmt from VPN
access-list r1999-outside-in extended permit tcp object-group VPN-NETWORK-NO-PROXY x.x.x.x 255.255.255.248 eq 4343
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
access-list r1999-outside-in remark ===r9940.4001.886 - Wireless Controllers
access-list r1999-outside-in remark Access from Test Network
access-list r1999-outside-in extended permit tcp xxx.xxx.xxx.xxx 255.255.255.128 x.x.32.160 255.255.255.248 eq 4343
access-list r1999-outside-in extended permit tcp 10.x.x.0 255.255.252.0 x.x.32.160 255.255.255.248 eq 4343
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
带有附加文本的块的片段
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
access-list r1999-outside-in remark ===r9920.4001.886
access-list r1999-outside-in remark Access from Test Network r9920.4001.886
access-list r1999-outside-in extended permit tcp xxx.xxx.xxx.xxx 255.255.255.128 x.x.32.160 255.255.255.248 eq 4343
access-list r1999-outside-in remark auth1.this.that r9920.4001.886
access-list r1999-outside-in extended permit ip host x.x.33.39 x.x.32.160 255.255.255.248
access-list r1999-outside-in remark Access to Mgmt from VPN r9920.4001.886
access-list r1999-outside-in extended permit tcp object-group VPN-NETWORK-NO-PROXY x.x.x.x 255.255.255.248 eq 4343
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
access-list r1999-outside-in remark ===r9930.9975.1296
do the same thing here we did above....
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
为了变得更复杂一点,我的下一个任务是将所有 r(xxxx) 替换为新单词。
我有一个文本文件,其中包含新的引用数据,如下所示...接下来我可以关注这一点,但任何建议也很好。 r1130,新词 r1140,新词
我正在循环并获得第一个正则表达式结果,但之后遇到问题。对于接下来的几种方法来说,只要有一点建议就很好了。
with open("file.txt", "r") as file:
# Create an empty list to store the lines
lines = []
# Iterate over the lines of the file
for line in file:
line = line.strip()
# Append the line to a list
lines.append(line)
# regex to pull out r(xxxx).(xxxx).(xxxx)
y = re.search("(r\d{4}.\d+.\w+)", line)
if y != None:
print(y)
我想这就是你所追求的。这里不需要正则表达式。您只需跟踪当前的后缀,当您找到 =-=-=-= 时重置它,并在找到“remark ===”时设置一个新后缀。
suffix = ""
with open("x.txt") as file:
# Create an empty list to store the lines
# Iterate over the lines of the file
for line in file:
line = line.strip()
if '=-=-=-=' in line:
suffix = ''
print(line)
elif 'remark ===' in line:
suffix = ' ' + line.split()[3]
print(line)
continue
elif 'remark' in line:
print( line + suffix )
else:
print(line)
输出:
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
access-list r1999-outside-in remark ===r9920.4001.886
access-list r1999-outside-in remark Access from Test Network ===r9920.4001.886
access-list r1999-outside-in extended permit tcp xxx.xxx.xxx.xxx 255.255.255.128 x.x.32.160 255.255.255.248 eq 4343
access-list r1999-outside-in remark auth1.this.that ===r9920.4001.886
access-list r1999-outside-in extended permit ip host x.x.33.39 x.x.32.160 255.255.255.248
access-list r1999-outside-in remark Access to Mgmt from VPN ===r9920.4001.886
access-list r1999-outside-in extended permit tcp object-group VPN-NETWORK-NO-PROXY x.x.x.x 255.255.255.248 eq 4343
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
access-list r1999-outside-in remark ===r9930.9975.1296 - Wireless Controllers
access-list r1999-outside-in extended permit object-group TFTP host x.x.33.203 x.x.33.160 255.255.255.248
access-list r1999-outside-in remark Access to Mgmt from VPN ===r9930.9975.1296
access-list r1999-outside-in extended permit tcp object-group VPN-NETWORK-NO-PROXY x.x.x.x 255.255.255.248 eq 4343
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
access-list r1999-outside-in remark ===r9940.4001.886 - Wireless Controllers
access-list r1999-outside-in remark Access from Test Network ===r9940.4001.886
access-list r1999-outside-in extended permit tcp xxx.xxx.xxx.xxx 255.255.255.128 x.x.32.160 255.255.255.248 eq 4343
access-list r1999-outside-in extended permit tcp 10.x.x.0 255.255.252.0 x.x.32.160 255.255.255.248 eq 4343
access-list r1999-outside-in remark =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=