Bash에서 단어 앞뒤의 모든 문자열 삭제

Bash에서 단어 앞뒤의 모든 문자열 삭제

ping네트워크 연결을 확인하는 데 사용합니다 .

내가 원하는 것은 수신된 패킷 수뿐입니다.

예를 들어 ping -c10 -q 8.8.8.8 | grep received출력이 다음과 같은 경우:

10 packets transmitted, 5 received, 50% packet loss, time 9016ms

나는 단지 출력에서 ​​숫자 5를 보고 싶은데 그 앞이나 뒤의 아무것도 보고 싶지 않습니다.

따라서 예상되는 출력은 다음과 같습니다.5

답변1

grepwith 옵션을 사용하여 이 작업을 수행할 수 있습니다 -P.

grep -Po '\d+(?= received)'

다음을 사용할 수도 있습니다 awk.

awk '$5 == "received,"{print $4}'

관련 정보