在一个文件中对一个文件进行排序



给定文件1:

13 a b c d
5 f a c d
7 d c g a
14 a v s d

和file2:

7 x
5 c
14 a
13 i

我想对file1进行对File2中第一列的相同顺序进行排序,以便输出应为:

7 d c g a
5 f a c d
14 a v s d
13 a b c d

可以在狂欢中执行此操作,还是我应该使用一些"更高"的语言?

使用awkfile2的行号放在file1前面的额外列中。对该列进行对结果进行排序。然后删除该前缀列

awk 'FNR == NR { lineno[$1] = NR; next}
     {print lineno[$1], $0;}' file2 file1 | sort -k 1,1n | cut -d' ' -f2-

简单解决方案

for S in $(cat file2 | awk '{print $1}'); do grep $S file1; done

相关内容

  • 没有找到相关文章

最新更新