리눅스 IP 주소 정렬
2019. 9. 16. 17:07 |
리눅스
리눅스에서 정렬할때 sort 명령어를 자주 사용한다. 그런데 IPv4 주소의 경우 sort로 그냥 정렬하면 원하는 결과가 나오지 않는다. 예를 들어 아래와 같은 IP 주소가 있다고 할 때
20.2.2.2
3.4.3.3
100.1.1.1
3.30.3.3
우리가 원하는 결과는 아래와 같다.
3.4.3.3
3.30.3.3
20.2.2.2
100.1.1.1
하지만 그냥 sort를 하면 아래와 같이 나오고
100.1.1.1
20.2.2.2
3.30.3.3
3.4.3.3
sort -n 옵션을 주어도 아래와 같이 나온다.
3.30.3.3
3.4.3.3
20.2.2.2
100.1.1.1
3.30.3.3보다 3.4.3.3이 먼저 나와야 하는데 -n은 그것까지 고려하지 못한다.
해결책은 약간의 트릭이기는 하지만 -V 옵션을 사용하는 것이다. -V는 버전넘버로 정렬인데 IPv4 주소가 딱 거기에 걸리는 형식이다. sort -V 옵션을 사용하면 아래와 같이 원하는 결과가 나온다.
3.4.3.3
3.30.3.3
20.2.2.2
100.1.1.1
참고로 MySQL의 경우 ORDER BY INET_ATON(column)을 사용하면 되고, Python의 경우 socket.inet_aton을 사용하면 된다.
'리눅스' 카테고리의 다른 글
리눅스 crontab date +% 포맷 작동하지 않는 경우 (1) | 2020.03.23 |
---|---|
CentOS7에서 Google Chrome + Python3 + selenium으로 웹 크롤링 기초 (0) | 2020.03.20 |
UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-5: ordinal not in range(128) (0) | 2020.02.06 |
python -m json.tool 유니코드 한글 깨짐 (0) | 2020.02.06 |
BlueStacks 4 vdi 파일 용량 축소 (1) | 2019.07.16 |
BlueStacks 4 Disk 용량 증설 (0) | 2019.07.09 |
리눅스 특정 라인 이하 삭제 (0) | 2019.05.21 |
Docker Hub 이미지 tag list 확인 방법 (0) | 2019.05.01 |
최근에 달린 댓글 최근에 달린 댓글