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