ifconfig 출력 필터링

ifconfig 출력 필터링

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  

관련 정보