열을 독립적으로 정렬하는 방법은 무엇입니까?

열을 독립적으로 정렬하는 방법은 무엇입니까?
$ sort -t $'\t' -k 1rn,1 -k 2,2rn -k 3f,4 listaprezzi

2050        900           bananas     5
1905        700           grapes      17
250         4000          oranges     10
230         9200          figs        4
220         5000          lemons      10
200         8000          pears       8

listaprezzi첫 번째 열의 숫자를 역순으로(옵션 rn), 두 번째 열을 rn, 세 번째 열을 알파벳순( ) 으로 정렬하고 싶습니다 f. 올바른 명령은 무엇입니까?

나는 여러 가지 방법을 시도했지만 성공하지 못했습니다.

답변1

귀하의 질문을 올바르게 이해했다면 데이터를 다시 정렬하고 싶습니다. 즉, 동일한 행의 여러 필드를 독립적으로 정렬(위 또는 아래로)하고 싶습니다. bare 로는 그렇게 할 수 없습니다 sort. 예를 들어 의 도움을 받아 추가 도구를 사용해야 하며 awk다음 paste과 같이 작성할 수 있습니다.

$ paste <(awk '{print $1}' listaprezzi | sort -nr) <(awk '{print $2}' \
  listaprezzi | sort -nr) <(awk '{print $3}' listaprezzi | sort) <(awk \
  '{print $4}' listaprezzi)

그리고 그 결과는

2050    9200    bananas   5
1905    8000    figs      17
250     5000    grapes    10
230     4000    lemons    4
220     900     oranges   10
200     700     pears     8

관련 정보