gpt4 book ai didi

python - 如何将列中的整数替换为另一个文件、python 或 awk 中包含的另一个整数

转载 作者:行者123 更新时间:2023-11-30 23:28:37 24 4
gpt4 key购买 nike

我有 2 个大文件。在第一个文件中,我有一个包含整数的列,需要将其替换为另一个大文件(第二个文件)中包含的其他整数

1st FILE

123
124
125
126
127

2nd FILE

123 200
124 201
126 203
127 204

第二个文件包含一列,其中几乎包含第一个文件的每个整数,第二列包含用于替换的整数。因此,如果该整数在两个文件中,则将该整数替换为同一行第二列中的整数。

DESIRED OUTPUT FILE

200
201
203
204

两个输入文件都非常大,并且还有其他以 # 开头的列和标题

最佳答案

使用awk:

awk 'NR==FNR {a[$1]=$2; next} {if ($1 in a) {$1=a[$1]}}1' f2 f1

给定一个扩展输入文件f1,它返回:

200
12345
201
125
203
204
133

请注意,我使用的文件f1有更多记录,因此有一些与f2中不匹配的记录:

$ cat f1
123
12345
124
125
126
127
133

更新

This is very fast but it stills print the line if there is no match of both integers, and I don't want that... how would that be in that case??

如果您只想打印匹配项,请使用:

$ awk 'NR==FNR {a[$1]=$2; next} $1 in a {$1=a[$1]; print}' f2 f1
200
201
203
204

关于python - 如何将列中的整数替换为另一个文件、python 或 awk 中包含的另一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530360/

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