sort -k1,1 file.txt
다음과 같이 파일의 첫 번째 필드에서 sort 명령을 실행합니다 .
1,2,3
2,1,1
10,2,1
나에게주세요:
1,2,3
10,2,1
2,1,1
바꾸다:
1,2,3
2,1,1
10,2,1
나는 2 이전에 10을 원하지 않습니다. 이를 수행할 수 있는 방법이 있습니까?
답변1
설명된 대로 man sort
:
-n, --numeric-sort
compare according to string numerical value
그래서 당신은 다음을 원합니다:
$ sort -nk1,1 file
1,2,3
2,1,1
10,2,1
또한 기본적으로 필드는 공백으로 구분되므로 이 파일의 이러한 줄에는 필드가 하나만 있습니다. 예를 들어, 첫 번째 행의 첫 번째 필드는 1,2,3
가 아니라 입니다 1
. -t ,
필드를 추가해야 합니다 ,-separated
.
sort -t, -nk1,1 file
-n
를 사용하면 sort
정렬 키의 시작 부분에 유효 숫자를 형성하는 문자 시퀀스만 고려됩니다(선행 공백은 무시됩니다). 첫 번째 줄의 경우 None 은 구현 및 로케일 -t,
에 따라 (사용자의 소수 구분 기호가 인 경우 ) 또는 (사용자의 천 단위 구분 기호가 인 경우 ) 로 처리되며 해당 항목은 모두 무시됩니다 .sort
1,2,3
1
1.2
,
123
,
sort
답변2
이 문제를 우연히 발견한 사람에게 맡기십시오. sort -V -k1,1 file.txt
작동해야 합니다.