여러 개의 구분된 파일을 한 열을 기준으로 사전식으로, 다른 열을 기준으로 숫자로 정렬

여러 개의 구분된 파일을 한 열을 기준으로 사전식으로, 다른 열을 기준으로 숫자로 정렬

min_ex아래의 TSV 파일(이라고 함)을 첫 번째 열을 기준으로 사전순으로 정렬하고 두 번째 열을 기준으로 숫자를 정렬 하고 싶습니다 .

A X, N    2.2
A, N    5.7
A, A    5.8
A, N    2.1
A, T    0.2
B G, M    2.3
B, L    0.1
B, I    0.2
B, M    9.3
B, C    9.9

나는 이것을하려고 노력하고 있습니다 sort -k1,2 -n min_ex. 그러나 다음과 같은 결과가 발생하므로 작동하지 않습니다.

A, A    5.8
A, N    2.1
A, N    5.7
A, T    0.2
A X, N    2.2
B, C    9.9
B G, M    2.3
B, I    0.2
B, L    0.1
B, M    9.3

또한 (실험을 통해) 구분 기호로 공백이 있을 것이라고 확신 하지만 sort구분 기호를 설정하는 옵션이 표시되지 않습니다.

나는 sed순수한 AWK를 사용하거나 전혀 사용하지 않는(둘 다 선호하는 경우) 솔루션을 원하며 가능한 한 POSIX 규격을 유지하고 싶습니다.

답변1

sort -t$'\t' -k1,1 -k2,2n

효과가 있었어, 그랬어POSIX 호환일부를 제외하고 $'\t'. -t필드 구분 기호를 지정합니다(기본 공백을 공백이 아닌 공백으로 변환하는 대신) 접미사는 n개별 필드 정의에 적용될 수 있습니다.

관련 정보