给定一个文件1:
13 a b c d
5 f a c d
7 d c g a
14 a v s d
和一个文件2:
7 x
5 c
14 a
13 i
我想考虑 file2 中第一列的相同顺序对 file1 进行排序,以便输出应为:
7 d c g a
5 f a c d
14 a v s d
13 a b c d
是否可以在 bash 中执行此操作,或者我应该使用一些“高级”语言(例如 python)?
Use awk
放置行号file2
作为前面的额外列file1
。按该列对结果进行排序。然后删除该前缀列
awk 'FNR == NR { lineno[$1] = NR; next}
{print lineno[$1], $0;}' file2 file1 | sort -k 1,1n | cut -d' ' -f2-
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)