私はこのように見える約12300行の巨大なファイルを持っています。
001.domain.com=001.somedomain.com:10001
002.domain.com=002.somedomain.com:10002
003.domain.com=003.somedomain.com:10003
完了したら、ファイルが次のように見えるようにしたいと思います。
001.domain.com=IP_Address_of_001.somedomain.com:10001
002.domain.com=IP_Address_of_002.somedomain.com:10002
003.domain.com=IP_Address_of_003.somedomain.com:10003
したがって、デフォルトでは=記号の後のホスト名を見つけてそれをIPアドレスに置き換える必要があります。
誰もが私を正しい方向に指すことができればとても感謝します。
ベストアンサー1
これは、sedを使用してホスト名を抽出し、digを使用してIPを取得し、再びsedを使用して置き換えます。交換内容を新しいファイルに出力します。
$ while read line; do
hostname=$(echo "$line" | sed "s/.*=\(.*\):.*/\1/g")
ip=$(dig +short $hostname | head -n1)
echo "$line" | sed "s/\(.*=\).*\(:.*\)/\1${ip}\2/g"
done < file.txt > new_file.txt