IP パスを取得するには、bash からインターフェイスのサブネットを取得します。

IP パスを取得するには、bash からインターフェイスのサブネットを取得します。

そのip addrコマンドはタイプのサブネットアドレスを取得しまし192.168.0.1/24たが、このip routeコマンドにはタイプのサブネットアドレスが必要です192.168.0.0/24

sed -E 's/(?<=\d.)1(?=\/)/0/g'以下を使用して最後の「1」を「0」に変更しようとすると、エラーが発生します。sed: -e expression #1, char 21: Invalid preceding regular expression

答え1

問題は、sedがPCRE構文をサポートしていないことです。このGNU sedスニペットを試してください。

sed -r 's:([0-9]\.)[0-9]{1,3}/:\10/:g'

-r許可されていない場合はを使用してください-E

答え2

@seshoumaraが指摘したように、sedは前後をサポートしていないので、sedの代わりにPerlを使用するようになりました。

ip -o -f inet addr show eth0 | awk '/scope global/ {print $4}' | perl -ne 's/(?<=\d.)\d{1,3}(?=\/)/0/g; print;'

関連情報