私はこのスクリプトを使ってF5設定ファイルからプール名を表示します。これを複数のF5設定ファイルで実行したいのですが、^ pool | ^}(プールOR)行の始まりを持ってください...私は私の望む出力を私が行2348から読むように教えているときに瞬間に...ファイル内の一致文字列から行を読み込みます。
私は私の使用を排除したいxrange(2348)F5の設定ファイルが小さくなっている他のファイルなど..
私はスクリプトが^プールまたは^からファイルの行ごとの読み取りを開始するために取得する場合、それがうまくいく方法である}
現在のスクリプト:
import re
seenrule = 'false'
File = open("/home/t816874/F5conf/unzip/config/bigip.conf", "r")
for i in xrange(2348):
File.next()
for line in File:
if re.match("(^pool p)", line, re.IGNORECASE):
a = line.lstrip("pool p")
ONE = a[:-2]
print "Pool Name:", ONE
if re.findall(r'(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d] {1,3})', line):
if seenrule == 'false':
x = line.lstrip("members ")
print x
if re.match("(^rule)", line):
seenrule = 'true'
--------------------------------------------- ------------------
私の試み:あなたの助けみんなのため
import re
seenrule = 'false'
startline = 'false'
File = open("/home/t816874/F5conf/unzip/config/bigip.conf", "r")
if re.match("(^pool|^})", line):
startline = 'true'
for line in File:
if re.match("(^pool p)", line, re.IGNORECASE):
a = line.lstrip("pool p")
ONE = a[:-2]
print "Pool Name:", ONE
if re.findall(r'(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d] {1,3})', line):
if seenrule == 'false':
x = line.lstrip("members ")
print x
if re.match("(^rule)", line):
seenrule = 'true'
ありがとう!
-----------
confファイルは次のようになります。
node 172.0.0.0 {
screen ab2583-1.2
}
node 172.0.0.1 {
screen ab2583-1.3
}
node 172.0.0.3 {
screen ab2584-1.2
}
pool pWWW_abcd_HTTPS {
lb method member predictive
monitor all mWWW_staging.telecom_TCP
members {
0.0.0.0:8421 {}
0.0.0.1:18431 {
session user disabled
}
0.0.0.2:8421 {}
0.0.0.3:18431 {
session user disabled
}
}
}
pool pWWW_vcm2APP.defg_HTTP {
lb method member predictive
monitor all mWWW_vcm2APP.defg_TCP
members 0.0.0.5:27110 {}
}
node..
....
.
あなたは読んでいるところから正規表現を使ってマッチングしようとしているところからconfファイルの内容を共有できますか? –
編集ありがとう.. – KiloBravo