탭으로 구분된 파일의 두 번째 열을 기준으로 파일 정렬 [닫기]

탭으로 구분된 파일의 두 번째 열을 기준으로 파일 정렬 [닫기]

중복일 수 있지만 탭으로 구분된 파일이 있고 두 번째 열(부동 소수점 값)을 기준으로 파일을 정렬해야 합니다.

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

하나의 필드에만 정렬 순서를 지정하면 정렬된 필드에 동점이 있는 경우 문제가 발생할 수 있습니다.

관련 정보