コンテンツへスキップ

grepで便利なオプション

シェルスクリプトでIPを引数にしたいとき、nslookupやdigを使用する時がある。
その結果からIPだけの文字列に整形をするのだが、IP以外にも切り取られてしまうことがある。

例えば、以下のコマンドの場合、digコマンドからIPを表示されない場合がある。

dig -4 $i | grep "IN" | grep -v ';' | awk '{print $5}'

どうにかならないか考えたところ、以下サイトが参考になった。


個人的にありがたかったのが、grepのオプション -o で、grepが一致した箇所だけを表示する。
それを踏まえて、dig のオプション -4でIPV4にしぼり、正規表現で3ケタの0-9までの文字列にしぼる。

dig -4 $i | grep "IN" | grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'


上記のコマンドで現在は安定してIPを取得できている

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です