IP アドレスのみを抜き出す


入力が以下のような場合に、

UDP:[192.168.2.143]:6752

次のような出力をさせるというものです。

192.168.2.143

書かれてあるようにいくつかの手法がありますが、以下のような回答がありました。

awk "{if(match( $0, /UDP:\[([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\]:/, Arr))
{IPaddress = Arr[ 1 ]; print IPaddress}}" test.txt

また、もっと簡単に、

awk -v RS=[ -F] '/]/ {print $1}' file

のようなことも可能です。

comp.lang.awk の回答はたまに随分とアドホック的な回答がありますね。(^^;