Grep은 문자열의 첫 번째 인스턴스 이후에 출력을 얻습니다.

Grep은 문자열의 첫 번째 인스턴스 이후에 출력을 얻습니다.

현재 Docker의 CentOS 이미지를 사용하고 있습니다. 내가 원하는 것은 grep이 특정 문자열을 만난 후 특정 값을 얻는 것입니다. 이 경우 문자열은 "inet"입니다.

지금까지 내가 한 일:

# ifconfig | grep 'inet'

나에게 다음과 같은 결과를 제공합니다.

inet 192.168.208.4  netmask 255.255.240.0  broadcast 192.168.223.255
inet 127.0.0.1  netmask 255.0.0.0

그러나 나중에 환경 변수에 저장하려면 첫 번째 inet IP 주소(192.168.208.4)만 필요합니다. 나는 awk와 같은 grep의 대안을 사용하고 싶습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변1

여러 줄의 텍스트를 출력하는 명령이 있는데 첫 번째 줄만 출력하려고 합니다. 이 head명령은 다음과 같은 경우에 유용할 수 있습니다.

ifconfig | grep 'inet' | head -n 1

IP 주소만 필요한 경우 다음을 사용할 수 있습니다 awk.

ifconfig | awk '/inet/ { print $2; exit }'

그러면 문자열이 포함된 첫 번째 줄에서 두 번째 공백으로 구분된 필드가 추출된 inet다음 종료됩니다.

관련 정보