IPアドレスとnameの対応表を使用して、別のファイルのIPアドレスを置換したい


IPアドレスとnameを照らし合わせたcsvファイルを使用して別のファイルの中身のIPをnameに置き換えられたらなと…

IPアドレスとnameのファイルの中身を表示させて、そこからreadコマンドやsedコマンドでIPとnameを変換させる文を書いたのですが上手くできてなくて…

例として、以下のような照し合わせファイルを使用し、ログにある 192.168.0.1 を yamada に、 192.168.0.2 を satou
に変換するといったものが、Linuxで実現できたらなと考えております。よろしくお願いします。

[code]

    192.168.0.1, yamada
    192.168.0.2, satou
    192.168.0.3, tanaka
    192.168.0.4, adachi
    192.168.0.5, saitou
    
[/code]




以下は `awk` を利用する例です。

**trans_tbl.csv(変換表)**

[code]

    192.168.0.1,host_a
    192.168.0.2,host_b
    192.168.0.3,host_c
    192.168.0.4,host_d
    192.168.0.5,host_e
    
[/code]

**ip_addresses.csv(変換対象のIPアドレス)**

[code]

    192.168.0.4
    192.168.0.2
    192.168.0.1
    192.168.0.5
    192.168.0.3
    
[/code]

**awk スクリプト**

[code]

    #!/bin/bash
    
    trans_tbl='trans_tbl.csv'
    ip_addresses='ip_addresses.csv'
    
    awk -F, 'FNR==NR{ip[$1]=$2;next};$1 in ip{$1=ip[$1]}1' "$trans_tbl" "$ip_addresses"
    
    # host_d
    # host_b
    # host_a
    # host_e
    # host_c
    
[/code]

