파일의 각 열(필드)을 개별적으로 정렬합니다.

파일의 각 열(필드)을 개별적으로 정렬합니다.

sort나는 주로 한 필드를 전달한 다음 다른 필드를 전달하는 것이 가능하다는 것을 알고 있습니다 . 예를 들어:

$ echo -e "1 5\n1 4\n8 2\n1 9" | sort -k 1,1n -k 2,2n
1 4
1 5
1 9
8 2
$ 

그러나 내 말이 맞습니까? 항상 sort행을 그대로 유지합니다. 예를 들어 출력이 다음과 같은 방식으로 정렬하는 것은 불가능합니다.

1 2
1 4
1 5
8 9

이것이 가능하지 않다면 sort올바른 도구는 무엇입니까?

답변1

~처럼톰 지치유명한

paste -d ' ' <(echo -e "1 5\n1 4\n8 2\n1 9" |
               cut -f1 -d' ' |
               sort -n
           ) <(echo -e "1 5\n1 4\n8 2\n1 9" |
               cut -f2 -d' ' |
               sort -n
           )

답변2

이렇게 하면 먼저 행을 필드로 분할하고 각 필드는 자체 파일로 이동합니다. 이는 cut또는 또는 기타 다양한 도구를 사용하여 awk수행할 수 있습니다 . 그런 다음 sort각 파일을 분리하십시오. 그런 다음 paste그들은 다시 모였습니다.

관련 정보