정렬이 예상한 것과 다릅니다. 이 파일이 있습니다 text.txt
. 이름을 다음과 같이 지정하세요.
a 1
A 1
a 11
(공간은 언제나 하나이다 \t
)
첫 번째 열에서 알파벳순으로 정렬하고 싶습니다. 그러나 내가 할 때
sort -k 1 text.txt
내가 얻는 것은 정렬되지 않은 text.txt 파일뿐입니다. 더 이상 사용되지 않는 표기법으로 수행하면 + -
의미합니다.
sort +0 -1 text.txt
예상대로 작동합니다. 즉, 다음과 같은 결과가 출력됩니다.
a 1
a 11
A 1
이 이상한 동작은 행이 대소문자만 다른 경우에만 발생합니다. 내가 뭘 잘못했나요?
답변1
끝 열도 지정해야 합니다.
$ sort -k1,1 text.txt
a 1
a 11
A 1
인용하다GNU 정렬 매뉴얼 페이지:
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line)
답변2
버그가 발생했을 것입니다 sort
! 파일에 공백이 없으면 올바르게 정렬할 수 없습니다.
$ cat aaa
a1
A1
a11
$ sort aaa
a1
A1
a11
$ sort -k1,1 aaa
a1
A1
a11
이는 다음을 통해 더욱 분명해집니다.
$ cat bbb
A B b 0
a B b 0
A b b 1
$ sort bbb
a B b 0
A B b 0
A b b 1
$ sort -k1,2 bbb
a B b 0
A b b 1
A B b 0