숫자 정렬을 사용하는 유닉스 정렬 명령

파일 1이 있습니다.

"$lvl=57" "$lvl=20" "$lvl=48" "$lvl=17" "$lvl=58" 

파일 2 I want :

"$lvl=17" "$lvl=20" "$lvl=48" "$lvl=57" "$lvl=58" 

기본적으로 수치 적으로 정렬 된 파일 1.

댓글

  • 옵션없이 File1에서 일반 Unix sort를 실행하면 File2를 얻습니다. 당신은 무엇을 다르게하고 있습니까? 이 질문에서 제외하고 싶은 것은 무엇입니까?

답변

-V –version-sort를 좋아합니다 : 문자열과 숫자를 혼합하는 많은 상황에서 매우 잘 작동합니다.

sort -V 

이 옵션을 자주 사용합니다 …

어떤 방향으로 , ls -v 버전 정렬 ls.

답변

sort -n= 뒤의 부분을 정렬하도록 지시해야합니다.

sort -t = -k 2n 

댓글

  • 최근에 이것을 찾고있었습니다 ^^. 하지만 한 가지 더 Q. -k2n는 무엇을합니까? 숫자 정렬과 관련이 있습니까? 감사합니다.
  • @KasiyA -k는 정렬 키를 정의합니다. 자세한 내용은 man 페이지를 참조하십시오. -k2n는 두 번째 필드에서 시작하여 줄 끝에서 끝나는 정렬 키를 정의하고 숫자 정렬 키로 만듭니다.

Answer

sort -h를 실행하면 작동합니다. --human-numberic-sort라고합니다.

sort -h file1 > file2 

답변

정렬 사용 :

sort -n file1 > file2 

-n, –numeric-sort
문자열 숫자 값에 따라 비교

 sort -g file1 > file 2 

-g, –general-numeric-sort

댓글

  • 아니요, 모두 줄은 숫자로 시작하지 않으므로 sort -n와 순위가 동일합니다. ' 정렬하는 이유는 순위가 동일한 라인에 대해 수행되는 마지막 리조트 전체 라인 정렬 (숫자가 아닌 어휘) 때문입니다. 그러면 "$lvl=17""$lvl=2"보다 먼저 정렬됩니다.
  • @St é phaneChazelas는 지적 해 주셔서 감사합니다.
  • 다른 말로 표현하자면 -n-g는 입력이 숫자가 아니므로 여기서 중복됩니다. . 따라서이 답변은 오해의 소지가 있으므로 반대 투표 (-g 및 긴 옵션은 GNU에 따라 다릅니다)
  • 하지만 -g는 좋은 일반 숫자입니다. sort
  • '는 여전히 숫자 값을 정렬하기위한 것입니다. -n와의 차이점은 '는 십진수로 제한되지 않습니다. 그래도 마지막 리조트 정렬의 일부로 "$lvl=2" 전에 "$lvl=17" 정렬됩니다.

Answer

sort -n는 사용하려는 항목입니다. 숫자를 정렬 할 때 정렬됩니다. sort -k 2 -n file1

댓글

  • 하지만 OP는 기본값 인 오름차순으로 정렬하려고합니다. 역순을 제안하는 이유는 무엇입니까?
  • 필드가 또는 공백 으로 구분 된 경우 위의 내용이 정확하고 OP ' 사례.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다