その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;'