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
그들은 다시 모였습니다.