중복일 수 있지만 탭으로 구분된 파일이 있고 두 번째 열(부동 소수점 값)을 기준으로 파일을 정렬해야 합니다.
sort -s -k2,2gr -t$'\t'
코드에는 탭으로 구분된 파일의 두 번째 열을 기준으로 역순으로만 정렬한다고 명시되어 있습니다. 하지만 나는 잘못된 대답을 얻었습니다.
답변1
검사 결과 내 사용법 제안이 -n
정확했습니다.
$ for i in {1..10}; do printf "%s\t%s\t%s\n" $RANDOM $(python3 -c "print($RANDOM / $RANDOM)") $RANDOM; done | sort -n -t' ' -k2
29712 0.03716599507061539 950
2107 0.08032908116102791 1738
27575 0.37469985135495676 9831
16029 0.6201534733441034 18426
10659 0.7227198549410698 19929
1175 0.8913083459006143 24232
27187 1.1602447494625434 7016
6047 1.6342058354442255 17419
25561 2.026578073089701 4270
21636 14.603404255319148 17159
예제 데이터는 다음과 잘 작동합니다 -n
.
$ sort -n -t$'\t' -k2 test.txt -r | column -t -s$'\t'
Austin, Texas 50.2 68.3 84.2 70.6 33.65 85 0.9 62/58
Baton Rouge, La. 50.1 66.6 81.7 68.1 63.08 110 0.2 52/46
Atlanta, Ga. 42.7 61.6 80.0 62.8 50.20 115 2.1 69/65
Birmingham, Ala. 42.6 61.3 80.2 62.9 53.99 117 1.5 60
Asheville, N.C. 35.8 54.1 73.0 55.2 47.07 126 15.3 39
Albuquerque, N.M. 35.7 55.6 78.5 57.3 9.47 60 11.0 64
Baltimore, Md. 32.3 53.2 76.5 55.4 41.94 115 21.5 53
Atlantic City, N.J. 32.1 50.6 75.3 55.1 40.59 113 16.2 60/54
Boise, Idaho 30.2 50.6 74.7 52.8 12.19 89 20.6 64
Bridgeport, Conn. 29.9 48.9 74.0 54.7 44.15 119 26.2 55/49
Boston, Mass. 29.3 48.3 73.9 54.1 42.53 127 42.8 52/66
Billings, Mont. 24.0 46.1 72.0 48.1 14.77 96 56.9 69
Albany, N.Y. 22.2 46.6 71.1 49.3 38.60 136 64.4 57
Anchorage, Alaska 15.8 36.3 58.4 34.1 16.08 115 70.8 39/60
Bismarck, N.D. 10.2 43.3 70.4 45.2 16.84 96 44.3 64
하나의 필드에만 정렬 순서를 지정하면 정렬된 필드에 동점이 있는 경우 문제가 발생할 수 있습니다.