はじめに
インフラエンジニアなら誰しもが色々なログファイルからIPを抜き出したいと思った事がありますよね?
特に攻撃元の調査や何処のサーバからの接続が多いのかとかですね。apacheやnginxのようなIPの記述場所が決まっている場合は簡単に抜き出せるのですが、そうではないログも存在しているわけです。
やり方
とはいえ単純にawkのmatchを使うだけなんですけどね
cat (ログファイル) | awk 'match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) { print substr($0, RSTART, RLENGTH) }'
これでログファイルの中に出てくるIPだけを抽出することが出来ます。RSTARTはマッチした最初の位置、RLENGTHはマッチした長さが入ります。
最後に
sedやawk使いの人にとっても簡単な事だと思いますが、意外と出来ないと悩んでいる人も多いのかもしれません。
以上小ネタでした。