Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 按其他文件中列出的顺序对文本文件进行排序_Linux_Sorting_Text - Fatal编程技术网

Linux 按其他文件中列出的顺序对文本文件进行排序

Linux 按其他文件中列出的顺序对文本文件进行排序,linux,sorting,text,Linux,Sorting,Text,我需要对空格分隔的文本文件进行排序,该文件如下所示: rs4771122 1.983 0.998 1.998 1.990 0.998 0.988 1.000 1.984 0.001 1.998 1.996 rs1333026 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000 rs11847697 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.

我需要对空格分隔的文本文件进行排序,该文件如下所示:

rs4771122 1.983 0.998 1.998 1.990 0.998 0.988 1.000 1.984 0.001 1.998 1.996  
rs1333026 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000  
rs11847697 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000  
rs10150332 1.000 0.000 1.000 0.000 1.000 0.000 1.000 1.000 0.975 0.000 1.000  
etc.
rs1333026  
rs11847697  
rs4771122  
rs10150332
etc.
rs1333026 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000  
rs11847697 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000  
rs4771122 1.983 0.998 1.998 1.990 0.998 0.988 1.000 1.984 0.001 1.998 1.996  
rs10150332 1.000 0.000 1.000 0.000 1.000 0.000 1.000 1.000 0.975 0.000 1.000
etc.
它应该按照包含第一列中所有值的单独文本文件中列出的顺序,按第一列进行排序。第二个文件如下所示:

rs4771122 1.983 0.998 1.998 1.990 0.998 0.988 1.000 1.984 0.001 1.998 1.996  
rs1333026 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000  
rs11847697 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000  
rs10150332 1.000 0.000 1.000 0.000 1.000 0.000 1.000 1.000 0.975 0.000 1.000  
etc.
rs1333026  
rs11847697  
rs4771122  
rs10150332
etc.
rs1333026 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000  
rs11847697 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000  
rs4771122 1.983 0.998 1.998 1.990 0.998 0.988 1.000 1.984 0.001 1.998 1.996  
rs10150332 1.000 0.000 1.000 0.000 1.000 0.000 1.000 1.000 0.975 0.000 1.000
etc.
输出应如下所示:

rs4771122 1.983 0.998 1.998 1.990 0.998 0.988 1.000 1.984 0.001 1.998 1.996  
rs1333026 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000  
rs11847697 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000  
rs10150332 1.000 0.000 1.000 0.000 1.000 0.000 1.000 1.000 0.975 0.000 1.000  
etc.
rs1333026  
rs11847697  
rs4771122  
rs10150332
etc.
rs1333026 0.000 0.000 0.000 1.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000  
rs11847697 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000  
rs4771122 1.983 0.998 1.998 1.990 0.998 0.988 1.000 1.984 0.001 1.998 1.996  
rs10150332 1.000 0.000 1.000 0.000 1.000 0.000 1.000 1.000 0.975 0.000 1.000
etc.
有没有一种方法可以使用类似于带-f标志的grep的sort命令来获得这个结果


谢谢。

您可以循环浏览第二个文件,并保持
grep
对第一个文件中的每一行进行填充

比如说:

while read line
do
   grep -wF "$line" f1
done < f2

您可以循环浏览第二个文件并保持
grep
ing第一个文件中的每一行

比如说:

while read line
do
   grep -wF "$line" f1
done < f2

您可以循环浏览第二个文件并保持
grep
ing第一个文件中的每一行

比如说:

while read line
do
   grep -wF "$line" f1
done < f2

您可以循环浏览第二个文件并保持
grep
ing第一个文件中的每一行

比如说:

while read line
do
   grep -wF "$line" f1
done < f2


第一列是否具有唯一值?可能重复的Not True,@Kami,请参见本例中的顺序。已在此处回答:第一列是否具有唯一值?可能重复的Not True,@Kami,请参见本例中的顺序。已在此处回答:第一列是否具有唯一值?可能重复的Not True,@Kami,看这个例子中的顺序很重要。这里已经回答了:第一列是否有唯一的值?可能的重复不是真的,@Kami,看这个例子中的顺序很重要。这里已经回答了:谢谢。这对我提供的测试文件有效,但由于我现在无法查看的原因,因为我已经筋疲力尽,它对真实文件无效。它一直工作到13行中的第10行,然后跳过一行,另外12行的广告无法破译。我肯定问题出在文件里,我就是看不到。我现在看到了。我希望第二个文件只包含第一个文件第一列中列出的值。它还有一个附加值。在排序之前,我只需检查所有文件(有两对以上)。再次感谢。@ludiklobucar如果您有多个文件,您可以将
替换为
<@ludiklobucar也解决了您的问题吗?既然你是新来的,如果你的问题已经解决了,请别忘了把答案标为“接受”。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!是的,它现在起作用了,是那不幸的额外价值造成了混乱。谢谢你的建议,我不知道该怎么做。谢谢。这对我提供的测试文件有效,但由于我现在无法查看的原因,因为我已经筋疲力尽,它对真实文件无效。它一直工作到13行中的第10行,然后跳过一行,另外12行的广告无法破译。我肯定问题出在文件里,我就是看不到。我现在看到了。我希望第二个文件只包含第一个文件第一列中列出的值。它还有一个附加值。在排序之前,我只需检查所有文件(有两对以上)。再次感谢。@ludiklobucar如果您有多个文件,您可以将
替换为
<@ludiklobucar也解决了您的问题吗?既然你是新来的,如果你的问题已经解决了,请别忘了把答案标为“接受”。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!是的,它现在起作用了,是那不幸的额外价值造成了混乱。谢谢你的建议,我不知道该怎么做。谢谢。这对我提供的测试文件有效,但由于我现在无法查看的原因,因为我已经筋疲力尽,它对真实文件无效。它一直工作到13行中的第10行,然后跳过一行,另外12行的广告无法破译。我肯定问题出在文件里,我就是看不到。我现在看到了。我希望第二个文件只包含第一个文件第一列中列出的值。它还有一个附加值。在排序之前,我只需检查所有文件(有两对以上)。再次感谢。@ludiklobucar如果您有多个文件,您可以将
替换为
<@ludiklobucar也解决了您的问题吗?既然你是新来的,如果你的问题已经解决了,请别忘了把答案标为“接受”。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!是的,它现在起作用了,是那不幸的额外价值造成了混乱。谢谢你的建议,我不知道该怎么做。谢谢。这对我提供的测试文件有效,但由于我现在无法查看的原因,因为我已经筋疲力尽,它对真实文件无效。它一直工作到13行中的第10行,然后跳过一行,另外12行的广告无法破译。我肯定问题出在文件里,我就是看不到。我现在看到了。我希望第二个文件只包含第一个文件第一列中列出的值。它还有一个附加值。在排序之前,我只需检查所有文件(有两对以上)。再次感谢。@ludiklobucar如果您有多个文件,您可以将
替换为
<@ludiklobucar也解决了您的问题吗?既然你是新来的,如果你的问题已经解决了,请别忘了把答案标为“接受”。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!是的,它现在起作用了,是那不幸的额外价值造成了混乱。谢谢你的建议,我不知道该怎么做。