gpt4 book ai didi

bash - 根据另一个文件中的顺序对一个文件中的行进行排序

转载 作者:行者123 更新时间:2023-11-29 08:57:23 26 4
gpt4 key购买 nike

给定一个文件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)?

最佳答案

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

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

关于bash - 根据另一个文件中的顺序对一个文件中的行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30180209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com