구문 분석 명령 arp -a는 ip에만 사용됩니다.

구문 분석 명령 arp -a는 ip에만 사용됩니다.

arp -a장치의 IP만 얻으려면 명령을 구문 분석해야 합니다 . 지금 나 한테있어

arp -a | awk '{print $2}' | head -1

그러나 이것은 나에게 주었다

(192.168.1.71)

( )출력에서 제거 해야 합니다 . 이것이 어떻게 달성될 수 있습니까?

답변1

()공백 대신 문자를 필드 구분 기호로 사용할 수 있습니다 .

arp -a | awk -F'[()]' '{print $2}' | head -1

답변2

사용 cut:

arp -a | awk '{print $2}' | head -1 | cut -d "(" -f 2 | cut -d ")" -f 1

의견에 제안된 대로 답변을 업데이트했습니다.

cut설명하다:

-d- 구분 기호 역할을 하며 처음 나타날 때 문자열을 분할합니다.(

-f- 지정된 필드를 선택합니다. 여기서 두 번째 부분을 선택하세요.x.x.x.x)

cut이 출력을 다음 단계의 입력 으로 사용합니다.|

cut -d ")" -f 1- 입력을 다시 분할 )하고 IP 주소만 있는 첫 번째 부분을 선택합니다.

답변3

tr원하지 않는 문자를 제거하는 것과 같은 일에 능숙합니다.

$ tr -d '()' <<< '(192.168.1.1)'
192.168.1.1

대체로 다음과 같습니다.

arp -a | awk '{print $2}' | head -1 | tr -d '()'

관련 정보