grepコマンドでIPアドレスのみ抽出する


はじめに


grepコマンドを利用して、文字列からIPアドレスのみ抽出するメモ。

環境


# hostnamectl status
   Static hostname:  ---
         Icon name: computer-vm
           Chassis: vm
        Machine ID: ---
           Boot ID: ---
    Virtualization: kvm
  Operating System: CentOS Linux 8 (Core)
       CPE OS Name: cpe:/o:centos:centos:8
            Kernel: Linux 4.18.0-80.11.2.el8_0.x86_64
      Architecture: x86-64
# echo $SHELL
/bin/bash

正規表現で抽出


grepコマンドに -E オプションを指定することで正規表現を利用することを宣言できる。
また、 -o で正規表現にマッチした箇所だけを出力するようにできる。

# ip -4 a | grep -E '[0-9]{,3}\.[0-9]{,3}\.[0-9]{,3}\.[0-9]{,3}' -o
127.0.0.1
153.127.17.81
153.127.17.255

終わり。