同じホスト名を持つ2つのファイルを比較する方法が必要です。私は、ホスト名を解析してリストに保存する関数を書いています。私はそれを持っていると、私はファイルを比較することができる必要があります。一度ホスト名を持つファイルを比較する
各ファイルは別のディレクトリにあります。
ステップ1:各ファイルから「ホスト名」を取得します。 ステップ2:2つのディレクトリから同じ "ホスト名"を持つファイルに対して比較を実行します。
def hostname_parse(directory):
results = []
try:
for filename in os.listdir(directory):
if filename.endswith(('.cfg', '.startup', '.confg')):
file_name = os.path.join(directory, filename)
with open(file_name, "r") as in_file:
for line in in_file:
match = re.search('hostname\s(\S+)', line)
if match:
results.append(match.group(1))
#print "Match Found"
return results
except IOError as (errno, strerror):
print "I/O error({0}): {1}".format(errno, strerror)
print "Error in hostname_parse function"
サンプルデータ:
テストファイル:ホスト名が19-30である。この場合
19-30#
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname 19-30
!
boot-start-marker
boot-end-marker
!
ntp clock-period 17179738
ntp source Loopback0
!
end
19-30#
は、ホスト名のコードを取得します。テストを簡単にするために、私は同じファイルを使用しましたが、同じファイルに変更しました。
上記のとおりです。ホスト名を抽出できますが、見つかったホスト名に基づいてファイルを比較する方法を探しています。
これはファイルの比較です。しかし、特定のフィールドを見ることができることは、私が達成したいことです。初心者のために、私はファイルが同一であることを見ているだけです。大文字と小文字の区別は、シスコが生成した同じ書式のファイルであるため、重要ではありません。ファイルの内容は、私が "設定"の変更を探しているほど重要です。
あなたが比較しようとしていることについて具体的に説明する必要があります。ファイルが同じかどうかを調べていますか?大文字と小文字の区別/順序や内容について気にしますか?あなたが比較する必要がある特定のフィールドはありますか?これは非常に広い質問です。 – flyingmeatball