Linux 根据不同文件中的信息对文件进行排序
我有一个包含两列的文件(f1);f1如下所示:Linux 根据不同文件中的信息对文件进行排序,linux,shell,Linux,Shell,我有一个包含两列的文件(f1);f1如下所示: bob population1 sam population1 jen population2 amy population2 jim population3 bob population3 doc population4 allison population4 zoe population5 karla population5 population4 population1 population2 population5 population3
bob population1
sam population1
jen population2
amy population2
jim population3
bob population3
doc population4
allison population4
zoe population5
karla population5
population4
population1
population2
population5
population3
在另一个文件(f2)中,我指定我希望f1中的个体如何根据其总体进行排序;f2如下所示:
bob population1
sam population1
jen population2
amy population2
jim population3
bob population3
doc population4
allison population4
zoe population5
karla population5
population4
population1
population2
population5
population3
我期待以下结果:
doc population4
allison population4
bob population1
sam population1
jen population2
amy population2
zoe population5
karla population5
jim population3
bob population3
有人能给我一些建议吗?你可以在f2中的线上循环,从f1中为每个线提取匹配线:
while read s ; do
grep "$s" f1
done < f2
读s时;做
grep“$s”f1
完成
或者,在没有循环的情况下
nl f2 \
| sed 's=\([0-9]\+\)\t\(.*\)=s/\2/\1 \2/=' \
| sed -f- <(nl f1) \
| sort -nk3,3
nl f2\
|sed的s=\([0-9]\+\\t\(.*\)=s/\2/\1\2/='\
|sed-f-欢迎来到Stackoverflow;请详细说明你想要实现的目标;是否需要shell脚本(然后用更精确的标记,如“shell”或“script”)标记问题)?不管怎么说,你必须说出你已经尝试过的和没有达到预期效果的。