【发布时间】:2013-04-29 17:20:19
【问题描述】:
我有两个格式的文件:
loc1 num1 num2
loc2 num3 num4
第一列是位置,我想使用第一个文件中位置的顺序对第二个文件进行排序,以便我可以将两个文件放在一起,其中数字适合该位置。
我可以编写一个 perl 脚本来做到这一点,但我觉得可能有一些快速/简单的 shell/awk 命令来实现这一点。你有什么想法吗?
谢谢。
编辑:
这是输入,现在我实际上想使用文件 1 中的第 2 列对文件 2 进行排序。
文件1:
GID location NAME GWEIGHT C1SI M1CO M1SI C1LY M1LY C1CO C1LI M1LI
AID ARRY2X ARRY1X ARRY3X ARRY4X ARRY5X ARRY0X ARRY6X ARRY7X
EWEIGHT 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
GENE735X chr17:66199278-66199496 chr17:66199278-66199496 1.000000 0.211785 -0.853890 1.071875 0.544136 0.703871 0.371880 0.218960 -2.268618
GENE1562X chr10:80097054-80097298 chr10:80097054-80097298 1.000000 0.533673 -0.397202 0.783363 0.109824 -0.436342 0.158667 0.475748 -1.227730
GENE6579X chr19:23694188-23694395 chr19:23694188-23694395 1.000000 0.127748 -0.203827 0.846738 0.045599 -0.211767 0.415442 0.282123 -1.302055
文件 2:
GID location NAME GWEIGHT C1SI M1CO M1SI C1LY M1LY C1CO C1LI M1LI
AID ARRY2X ARRY1X ARRY3X ARRY4X ARRY5X ARRY0X ARRY6X ARRY7X
EWEIGHT 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
GENE6579X chr19:23694188-23694395 chr19:23694188-23694395 1.000000 0.127748 -0.203827 0.846738 0.045599 -0.211767 0.415442 0.282123 -1.302055
GENE735X chr17:66199278-66199496 chr17:66199278-66199496 1.000000 0.211785 -0.853890 1.071875 0.544136 0.703871 0.371880 0.218960 -2.268618
GENE1562X chr10:80097054-80097298 chr10:80097054-80097298 1.000000 0.533673 -0.397202 0.783363 0.109824 -0.436342 0.158667 0.475748 -1.227730
【问题讨论】:
-
如果您需要帮助,您需要添加一些有代表性的输入。
-
为什么不对两个文件进行排序?然后你就可以使用join命令了。
-
你可以在第一个文件上运行
cat -n,然后在第二个文件上运行join,然后按cat -n打印的行号对它们进行排序。 -
我希望两个文件都按第一个文件中第一列的顺序排列