저는 이제 막 사용을 시작했고 출력 sed
에서 IP 주소를 추출하는 데 사용할 예정입니다 . ping
내가 정확히 달성하려는 것은 다음과 같습니다.
입력 텍스트:
ytmti (192.188.2.3) jjggy
원하는 출력:
192.188.2.3
내가 시도하는 명령 :
echo "ytmti (192.188.2.3) jjggy" | sed 's:\((\(192.188.2.3\))\):\2:'
전류 출력:
ytmti 192.188.2.3 jjggy
참고: ytmti
및 는 실제로 및 와 jjggy
같은 텍스트를 대신합니다 .Pinging unix.stackexchange.com
with 32 bytes of data:
출력을 awk
구문 분석하는 데는 를 사용하는 것이 더 나은 솔루션일 수 있다고 생각하지만 .ping
sed
답변1
대체 명령은 첫 번째 섹션에서 일치하는 모든 문자를 두 번째 섹션의 모든 문자로 바꾸 므로 다음과 같이 저장할 부분만 sed
필요하거나 유사하게 그룹화합니다..*
echo " ytmti (192.188.2.3) jjggy" | sed 's:^.*(\([^)]*\).*$:\1:'
나는 [^)]*
이를 사용하여 IP를 하드코딩하고 IP를 일반화하는 것을 방지합니다. 결과는 다음과 같습니다.
192.188.2.3
답변2
다음에서 필드 구분자 변수 사용 awk
:
echo "ytmti (192.188.2.3) jjggy" | awk -F'[)(]' '{print $2}'
192.188.2.3
답변3
다음을 수행할 수도 있습니다.
echo 'ytmti (192.188.2.3) jjggy' | tr -dc '0-9.'