Bash、ドットで区切られた文字列からIPを切り捨てる

Bash、ドットで区切られた文字列からIPを切り捨てる

いくつかの形式の結果があります。

10.3.2.1.in-addr.arpa name hostname

中間部分「.in-addr.arpa」を削除し、IPアドレスを1.2.3.10に変更したいと思います。単純なbash onelinerでこれを行うことはできますか?よろしくお願いします。これを数時間試してみましたが、少し停止しました。

ベストアンサー1

そしてperl

perl -pe 's/(\d+)\.(\d+)\.(\d+)\.(\d+)\.in-addr\.arpa/$4.$3.$2.$1/g' < input

標準に対応するよりも簡潔で読みやすいですsed

d='\([0-9]\{1,\}\)'
LC_ALL=C sed "s/$d\.$d\.$d\.$d\.in-addr\.arpa/\4.\3.\2.\1/g" < input

これはすべての項目を(ここでは1つ以上の10進数で構成される任意のシーケンス)<d1>.<d2>.<d3>.<d4>.in-addr.arpaに置き換え、他のすべての項目は変更されません。<d4>.<d3>.<d2>.<d1><dX>

おすすめ記事