누군가가 연결된 IP 문자열이 포함된 .txt 파일에서 IP를 숫자로 정렬하는 데 도움을 줄 수 있습니까?
txt 내용:
string_A=10.a.y.155
string_B=10.a.y.212
string_C=10.a.y.104
string_D=10.a.y.10
string_E=10.a.y.198
string_U=10.b.x.155
string_V=10.b.x.212
string_X=10.b.x.104
string_Y=10.b.x.10
string_Z=10.b.x.198
내가 원하는 출력:
10.a.x._ series in sorted way.
string_D=10.a.y.10
string_C=10.a.y.104
string_A=10.a.y.155
string_E=10.a.y.198
string_B=10.a.y.212
저희 회사의 데이터 정책으로 인해 원본 값을 게시할 수 있는지 잘 모르겠습니다. 따라서 이러한 더미 값을 대신 사용하십시오.
답변1
-V
("버전 순서")를 사용하여 대부분의 구현은 다음과 같습니다 sort
.
$ sort -t '=' -k2 -V file
string_D=10.a.y.10
string_C=10.a.y.104
string_A=10.a.y.155
string_E=10.a.y.198
string_B=10.a.y.212
string_Y=10.b.x.10
string_X=10.b.x.104
string_U=10.b.x.155
string_Z=10.b.x.198
string_V=10.b.x.212
만약 a=15
과 b=140
:
$ sort -t '=' -k2 -V file
string_D=10.15.y.10
string_C=10.15.y.104
string_A=10.15.y.155
string_E=10.15.y.198
string_B=10.15.y.212
string_Y=10.140.x.10
string_X=10.140.x.104
string_U=10.140.x.155
string_Z=10.140.x.198
string_V=10.140.x.212
with -k2
를 사용하면 이후의 데이터가 정렬 키로 처리됩니다.-t '='
sort
=
답변2
사용 sort
명령:
sort -t'=' -k2 file
-t'='
=
- 필드 구분자로 사용되는 기호-k2
- 두 번째 필드로 정렬
산출:
string_D=10.a.y.10
string_C=10.a.y.104
string_A=10.a.y.155
string_E=10.a.y.198
string_B=10.a.y.212
string_Y=10.b.x.10
string_X=10.b.x.104
string_U=10.b.x.155
string_Z=10.b.x.198
string_V=10.b.x.212
답변3
사용:
sort -t. -nk1,1 -nk2,2 -nk3,3 -nk4,4 file
-n
- 숫자로 정렬
정렬해야합니다4개 분야 각각.