kooshinのネットワーク運用メモ
ネットワーク運用している中で、実践したいことをメモとして公開しています。
2023/03/29
Pythonで複数のシスコルータのコンフィグファイルからホスト名を抽出する
## コード ```python # 複数のシスコルータのコンフィグからホスト名を抽出する import re from glob import glob # globでシスコルータのファイルを指定 config_filenames = glob("config/*") config_filenames.sort() # コンフィグファイルを順次読み込む for config_filename in config_filenames: with open(config_filename) as f: config = f.read() # 正規表現を使用してホスト名を抽出する match = re.search(r"^hostname\s+(?P
.*)", config, re.MULTILINE) if match: # ホスト名があったもののみ表示する hostname = match.group("hostname") print(f"{config_filename},{hostname}") ``` ## 結果 ```bash config/rt1-confg,rt1 config/rt2-confg,rt2 config/rt3-confg,rt3 ``` ## 説明 Pythonと正規表現を用いて、複数のコンフィグファイルからホスト名(hostname)を抽出します。 正規表現を利用するため```re```モジュールをインポートします。 複数のファイルを読み込むため、```glob```モジュールをインポートします。 ```glob```でファイル名の一覧を取得します。ファイル名は順不同のため、昇順で並び替えします。 1つずつコンフィグファイルを読み込みます。 正規表現```r"^hostname\s+(?P
.*)"```は、コンフィグファイルの名から先頭が```hostname```で始まる行を検索し、空白文字列を無視して、その後に続く文字列をホスト名として抽出します。 複数行の検索に対応するため、```re.MULTILINE```フラグを指定しています。 最後に、ホスト名が見つかった場合は、ファイル名とホスト名を出力します。 ## 関連 * [Pythonでシスコルータのコンフィグファイルからホスト名を抽出する](https://blog.kooshin.net/2023/03/pynwtips-confighostnamesingle.html) * [Pythonで複数のシスコルータのコンフィグファイルからホスト名を抽出する](https://blog.kooshin.net/2023/03/pynwtips-confighostnamemulti.html) * [Pythonで複数のシスコルータのコンフィグファイルからホスト名を抽出してCSV形式で保存する](https://blog.kooshin.net/2023/03/pynwtips-confighostnamecsv.html)
次の投稿
前の投稿
ホーム
Pythonで複数のシスコルータのコンフィグファイルからホスト名を抽出してCSV形式で保存する
Pythonで複数のシスコルータのコンフィグファイルからホスト名を抽出する
Pythonでシスコルータのコンフィグファイルからホスト名を抽出する
Pythonで複数のシスコルータのコンフィグファイルからホスト名を抽出してCSV形式で保存する