한 열은 오름차순으로 정렬하고 다른 열은 내림차순으로 정렬합니다.

한 열은 오름차순으로 정렬하고 다른 열은 내림차순으로 정렬합니다.

이상하게도 의도적인 행동이라는 뜻인 것 같지만 이해가 안 돼요., 그리고 그것을 고치는 방법을 모릅니다.

작업은 5번째 열을 기준으로 정렬한 다음 4번째 열을 기준으로 정렬하는 것입니다.

grep -w RockDoveHPG_Transcript_21  xaa.blast| sort  -gk5,5 -gk4,4

이것은 나에게 준다

RockDoveHPG_Transcript_21   XM_004941221.2  70.588  17  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  82.353  17  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  68.182  22  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  80.000  25  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  57.692  26  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  70.588  34  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  100.000 77  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  77.778  18  2.46e-80
RockDoveHPG_Transcript_21   XM_004941221.2  89.474  19  2.46e-80
RockDoveHPG_Transcript_21   XM_004941221.2  70.000  20  2.46e-80
RockDoveHPG_Transcript_21   XM_004941221.2  71.429  21  2.46e-80
RockDoveHPG_Transcript_21   XM_004941221.2  72.000  25  2.46e-80
RockDoveHPG_Transcript_21   XM_004941221.2  72.727  33  2.46e-80
RockDoveHPG_Transcript_21   XM_004941221.2  94.737  76  2.46e-80
...
RockDoveHPG_Transcript_21   XM_004941221.2  78.947  19  1.56e-43
RockDoveHPG_Transcript_21   XM_004941221.2  71.429  21  1.56e-43
RockDoveHPG_Transcript_21   XM_004941221.2  83.544  79  1.56e-43

5열은 잘 정렬되지만 이상적으로는 4열을 높은 것에서 낮은 것 순으로 정렬하고 싶습니다. 이제 낮은 것부터 높은 것까지. 아 플래그가 필요한거 같은데 -r..

grep -w RockDoveHPG_Transcript_21  xaa.blast| sort  -gk5,5 -r -gk4,4

이제 열 5는 반대 방향으로 정렬되지만 열 4는 괜찮습니다.

RockDoveHPG_Transcript_21   XM_004941221.2  83.544  79  1.56e-43
RockDoveHPG_Transcript_21   XM_004941221.2  71.429  21  1.56e-43
RockDoveHPG_Transcript_21   XM_004941221.2  78.947  19  1.56e-43
RockDoveHPG_Transcript_21   XM_004941221.2  68.750  16  1.56e-43
RockDoveHPG_Transcript_21   XM_004941221.2  86.667  15  1.56e-43
RockDoveHPG_Transcript_21   XM_004941221.2  85.526  76  6.22e-44
...
RockDoveHPG_Transcript_21   XM_004941221.2  100.000 77  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  70.588  34  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  57.692  26  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  80.000  25  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  68.182  22  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  82.353  17  4.17e-86
RockDoveHPG_Transcript_21   XM_004941221.2  70.588  17  4.17e-86

-r따라서 기본적으로 플래그는 열별로 적용되지 않는 것처럼 보입니다 . 한 정렬 열의 순서를 바꾸면 다른 정렬 열의 순서도 바뀌게 됩니다.

내가 갖고 싶은 건

RockDoveHPG_Transcript_21   XM_004941221.2  100.000 77  4.17e-86

내 생각엔 맨 위로 돌아가기~해야 한다이는 Col5를 낮은 것에서 높은 것으로 정렬한 다음 Col 4를 높은 것에서 낮은 것으로 정렬하여 수행됩니다.

답변1

당신이 한 방식으로 추가하면 -r다음과 같이 처리됩니다 .글로벌 옵션. 에서 info sort:

"-k"로 지정된 정렬 필드 내의 위치에는 옵션 문자 "MbdfghinRrV"가 추가될 수 있습니다. 이 경우 특정 필드는 전역 정렬 옵션을 상속하지 않습니다.

이 문구를 주목하세요"붙여라"즉, 필드 4만 반전하려면 다음을 사용하세요.-gk4,4r

답변2

사용

grep -w RockDoveHPG_Transcript_21  xaa.blast| sort  -gk5,5 -gk4,4r

r마지막에 주목하세요 .

관련 정보