awk 또는 sed와 같은 도구를 사용하여 파일 출력에서 ​​정보를 추출합니다.

awk 또는 sed와 같은 도구를 사용하여 파일 출력에서 ​​정보를 추출합니다.

저는 bash 스크립팅을 처음 접했고 현재 네트워크를 가져와 다운로드하는 스크립트를 만들려고 합니다. 필요한 정보를 추출하기 위해 awk 또는 sed와 같은 도구를 찾으려고 노력하고 있습니다.

고양이/proc/net/dev

Inter-|   Receive  |  Transmit face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo: 2245514   26732    0    0    0     0          0         0  2245514   26732    0    0    0     0       0
 0
 wlan0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0
 0
  eth0: 501233000800 372656590    0  354    0     0          0    478724 19824791855 194196655    0    0    0     0       0          0

이것은 내 출력입니다. eth0에서 필드를 수신하고 전송해야 합니다. grep -i eth0을 사용하여 한 줄로만 수정하려고 시도했지만 그 후에는 멈췄습니다.

eth0: 501233200415 372657763    0  356    0     0          0    478834 19825031691 194197387    0    0    0     0       0          0

여기까지 왔습니다. "501233200415" 및 "478834"를 어떻게 추출합니까?

답변1

원하는 필드가 항상 두 번째 및 아홉 번째 필드인 경우(예에서와 같이) 다음을 사용할 수 있습니다.

grep -i eth0 your_file | awk '{print $2, $9}'

관련 정보