次のコマンドラインを使用して現在のIPアドレスを読みます。次に、最後の値を0/24に置き換える必要があります。現在のIPは192.168.178.1です。 192.168.178.0/24のvar値を変更する必要があります。
ご支援とよろしくお願いします!
varip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/' )
答え1
最後に、次のsedコードを使用してください。
sed 's:[^.]*$:0/24:'
「.」を含まない最後の部分文字列を「0/24」に置き換える方法で動作します。s
エスケープされていない '/' を使用できるように、sed コマンドの区切り文字として ':' を使用する方法に注意してください。
または常にsedを使用してください:)
ip addr | sed -rn '/state UP/{n;n;s:^ *[^ ]* *([^ ]*).*:\1:;s:[^.]*$:0/24:p}'
答え2
この試み:
ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/' | sed 's/\.[0-9]*$/\.0\/24/'
しかし、必ずしもそうする必要はありません。cut
次に変えてください。sed
ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | sed 's/\.[0-9]*\//\.0\//'
このコマンドは同じ出力を返します。
そしてそれは必要ありません。tail
また、次のように変更してください。sed
ip addr | grep 'state UP' -A2 | awk '{print $2}' | sed '$!d;s/\.[0-9]*\//\.0\//'
しかし、最短ルート使用することですhostname
:
hostname -I | tr -d " " | sed 's/[0-9]*$/0\/24/'
出力は同じです。
答え3
Your-IP-Adress/24 を取得するには、次のコマンドを使用します。
ip addr | grep inet | egrep /24 | awk '{print $2}'
答え4
ただawkを使用してください:
ip a | awk '/state UP/{nr[NR+2]}; NR in nr {gsub(/\.([0-9]+)\/([0-9]+)/,".0/24"); print $2}'