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也解决了您的问题吗?既然你是新来的,如果你的问题已经解决了,请别忘了把答案标为“接受”。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!是的,它现在起作用了,是那不幸的额外价值造成了混乱。谢谢你的建议,我不知道该怎么做。