それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Grep に'\K' という便利な書式がある。

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 と組み合わせると特に有効に働く。

関連資料

https://takuya-1st.hatenablog.jp/entry/2017/11/03/000000