Linux의 txt 파일에서 문자열과 연결된 IP 정렬

Linux의 txt 파일에서 문자열과 연결된 IP 정렬

누군가가 연결된 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=15b=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개 분야 각각.

관련 정보