我所说的奇怪,可能是指这是有意的行为,但我不明白为什么,也不知道如何修复它。
任务是根据第 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
标志没有按列应用。反转 1 个排序列的顺序会反转另一个排序列的顺序。
我想要的是拥有
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
最后的。