[bash: awk] IP주소 표시 형태 변환 리눅스 bash script

IP주소를 표시할 때 간혹 세자리 수자로 맞추어 표시되는 경우가 있다. 대부분은 192.168.0.1 이렇게 사용하지만, 특정 프로그램의 출력에서 192.168.000.001 이런 식으로 나올 수가 있는 것이다. 이렇게 표시 형태가 혼용되고 있을 경우 검색이나 비교를 위해 하나의 방식으로 통일할 수 있는데, awk 명령으로 나름 간단하게 해결된다.

awk 명령에서 -F 옵션으로 항목 구분자를 점(.)으로 지정하고, printf 명령으로 출력 형식을 지정해 주면 된다. 아래의 예시를 보자.

# 192.168.000.001 -> 192.168.0.1
echo "192.168.000.001" | awk -F '.' '{ printf("%d.%d.%d.%d\n", $1, $2, $3, $4) }'
192.168.0.1

printf 명령에서 형식을 '%d'로 지정하면 선행하는 0을 제거해 준다. 결과 출력후 줄바꿈되도록 끝부분에는 '\n' 추가.

반대로 변환할 수도 있다. 형식 옵션을 '%03d'로 지정하면 세자리 수자로 맞추고 앞에 0을 추가하라는 뜻이 된다. 아래의 예시를 보자.

# 192.168.0.1 -> 192.168.000.001
echo "192.168.0.1" | awk -F '.' '{ printf("%03d.%03d.%03d.%03d\n", $1, $2, $3, $4) }'
192.168.000.001



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

64342
4132
1862255

ad_widget_2