Bash에서 다른 열 형식 지정

Bash에서 다른 열 형식 지정

내 서버에 연결된 IP 수를 확인하려면 다음 명령을 사용합니다.

sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

두 번째 열에는 고유 IP와 이 IP가 Nginx를 요청한 횟수를 표시합니다. 예:

23 123.45.6.8
3 34.56.78.4
1 8.9.4.3

이 IP의 현지화를 다루는 세 번째 열을 원합니다. 이를 위해 나는 geoiplookup.

출력 예:

23 123.45.6.8 Netherlands
3 34.56.78.4 England
1 8.9.4.3 Netherlands

출력 예 geoiplookup:

GeoIP Country Edition: US, United States
#or
GeoIP Country Edition: FR, France

따라서 ","로 나누는 것으로 충분합니다.

이전 출력을 세 번째 열의 현지화로 변환하는 방법하나철사?

답변1

sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | awk '{"geoiplookup "$2" | egrep -o Country.*[A-Z]{2}" | getline line; split(line,a," "); print $1, a[3], $2}'

관련 정보