ifconfigでIPv4 IPの最初の3オクテットを選択しようとしています。私はこれをどうしますか?この段階でどのように選択するのかわかりません。
[root@hostname ~]# ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | awk '{print $2}'
出力:
addr:10.20.1.3
私が最終的に望むのは10.20.1
最終結果です。
答え1
すべてのインターフェイスにawkを使用してください。
ifconfig | awk '/Link encap/{eth=$1} ; /inet addr/{sub(/addr:/, "", $2) ; sub(/\.[0-9]*$/,"",$2) ; addr=$2 ; print eth, addr)'
結果:
eth0 192.168.0
lo 127.0.0
答え2
探しているIPアドレスを想定して、eth0
次のことを行う必要があります。
ifconfig | grep -A1 eth0 | grep "inet addr" | sed 's/inet addr://' | awk '{ print $1 }' | sed 's/\.[0-9]*$//'
答え3
sed
実際の住所を使用するのも面倒でした。cut
このために使用する方が透明で正しく理解しやすいです!
| sed -e 's/inet_addr://' | cut -d. -f 1-3
元のコマンドの最後に以下を追加します。
ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | awk '{print $2}' | sed -e 's/inet_addr://' | cut -d. -f 1-3
またはcut
代わりに使用してくださいawk
:
ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | cut -w -f 2 | sed -e 's/inet_addr://' | cut -d. -f 1-3