【发布时间】:2013-09-14 19:47:15
【问题描述】:
我有这个文件:
rs1 1 ADD 0.7 0.75 0.45
rs1 1 VAR 0.4 4.53 0.06
rs1 1 USER NA 1.96 0.37
rs2 2 ADD 1.5 0.25 0.23
rs2 2 VAR 0.4 4.86 0.03
rs2 2 USER NA 1.73 0.05
rs3 3 ADD 0.29 0.76 0.97
rs3 3 VAR 0.44 3.95 0.09
rs3 3 USER 0.96 5.41 0.01
对于$1 中的每个值,在$3 中有ADD、VAR、USER 三行。我想根据$6 对USER 在$3 中的行的值对文件进行排序(反向排序)。问题是我怎么能做到这一点,同时在排序后的行旁边保留ADD、VAR 的相应行。我不需要对其他两行进行排序;我只需要它们位于sorted 行旁边。
期望的输出:
rs3 3 ADD 0.29 0.76 0.97
rs3 3 VAR 0.44 3.95 0.09
rs3 3 USER 0.96 5.41 0.01
rs2 2 ADD 1.5 0.25 0.23
rs2 2 VAR 0.4 4.86 0.03
rs2 2 USER NA 1.73 0.05
rs1 1 ADD 0.7 0.75 0.45
rs1 1 VAR 0.4 4.53 0.06
rs1 1 USER NA 1.96 0.37
我试过这段代码,但它只根据USER 行中的$6 值排序:
cat File | sort -k1 | uniq | sort -g -k6 > Output
谢谢
【问题讨论】:
-
+1 用于格式正确的问题,包含示例数据、所需输出和...喘气,...示例代码; -) 。您可以指定多个键进行排序。
-k2 -k3 -k6可能有用。祝你好运。 -
看看这个例子,我相信它与我相信stackoverflow.com/questions/3832068/…的思路相同
-
@shelter:不幸的是,它似乎不起作用
-
@TopGunCoder:其实我的问题和你说的有点不一样。不过这个问题很有趣。
-
所需的输出没有按我看到的任何方式按 $6 排序。