Grep に'\K' という便利な書式がある。
look behind を使って、必要な場所を取り出すことができる。
(<?=xxx) を使った場合
ip -o addr show dev br0 | grep -oP '(?<=inet )[\d.]+'
\K を使った場合
ip -o addr show dev br0 | grep -oP 'inet \K[\d.]+'
\K
の書式について
\K
より前はマッチ結果に含まれない(マッチはチェックされる)
echo abcdefg | grep -oP 'abcd\Kefg'
\K
をつけることで、マッチ試行が行われるが、マッチ文字列には取り込まれない。
-o
はマッチ結果を表示するオプション
だから、何かの後ろ
にあるものを取り出すので look behinde expression (後読み)と呼ばれる。
\Kを使えば、マッチグループを省略できる
\K
が使える環境であれば、後方参照を省略して、マッチ部を取り出せるので、便利。
grep はマッチ部しか取り出さないので、grep と組み合わせると特に有効に働く。