ある列は昇順で並べ替え、もう一方の列は降順で並べ替えます。

ある列は昇順で並べ替え、もう一方の列は降順で並べ替えます。

不思議なことに意図的な行動という意味のようですが、理解できません。なぜ、そしてそれを修正する方法がわかりません。

タスクは、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をローからハイにソートし、次にCol4をハイからローにソートすることによって行われる。

答え1

1つの方法で追加すると、-r次のように処理されます。グローバルオプション。からinfo sort

「-k」で指定されたソートフィールド内の位置には、オプション文字「MbdfghinRrV」を追加できます。この場合、特定のフィールドはグローバルソートオプションを継承しません。

このフレーズに注意してください「貼って」つまり、フィールド4のみを反転するには、次のようにします。-gk4,4r

答え2

使用

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

r最後に注意してください。

関連情報