私は、TXT形式のファイアウォールのログファイルを持っている例えば:複数の正規表現から出力への参加
src=10.10.10.1 srcPort=15003 dst=20.20.20.1 service=443 host=FirewalName proto=tcp
src=30.30.30.1 srcPort=18003 dst=40.40.40.1 service=8080 host=FirewalName proto=tcp
私は私が必要とする情報(SRC、DST、サービスを抽出するために構築された正規表現を持っています)しかし、私は正規表現の出力に参加し、各サービス=オブジェクトの前に、それぞれと "TCP"の間のタブを使ってファイルに出力を書き込むことができる必要があります。新しいファイルには、次のようになります。
10.10.10.1 20.20.20.1 TCP 443
30.30.30.1 40.40.40.1 TCP 8080
はまた、私はbetweを区別できるようにする必要があります私は
src=50.50.50.1 srcPort=21003 dst=60.60.60.1 service=161 host=FirewalName proto=udp
:入力ファイルの3行目の場合:どの出力ファイルに書き込むことは、例えば正確であるように、入力ファイルのサービス=の部分で「TCP
」および「UDP
」ENここにこだわって助けが必要です。次のようにzip()
組み込み関数を使用することができます今すぐ
sources = [item.split('=')[1] for item in sources]
dest = [item.split('=')[1] for item in dest]
:
import re
import sys
with open("SFD-IPs.txt", "r") as file:
text = file.read()
sources = re.findall(r'src=(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', text)
dest = re.findall(r'dst=(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', text)
service = re.findall(r'service=(\d+)', text)
with open("output.txt", "w") as TufinReq:
TufinReq.write(sIP)
f=open("output.txt", "r")
del_list = ["src=", "dst=", "service="]
list = []
for line in f:
for word in del_list:
if word in line:
line = line.replace(word, "")
list.append(line)
f.close()
f=open("output.txt", "w+")
for line in list:
f.write(line)
f.close()
はそれを受け入れることを忘れないでください:) – ettanany