在UNIX中从另一个文件中查找一个文件的内容

前端之家收集整理的这篇文章主要介绍了在UNIX中从另一个文件中查找一个文件的内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有2个文件.第一个文件包含数据库中表的元组的行ID列表.
第二个文件包含查询的“where”子句中的这些行ID的SQL查询.

例如:

文件1

1610657303
1610658464
1610659169
1610668135
1610668350
1610670407
1610671066

文件2

update TABLE_X set ATTRIBUTE_A=87 where ri=1610668350;
update TABLE_X set ATTRIBUTE_A=87 where ri=1610672154;
update TABLE_X set ATTRIBUTE_A=87 where ri=1610668135;
update TABLE_X set ATTRIBUTE_A=87 where ri=1610672153;

我必须阅读文件1,并在文件2中搜索文件1中的行ID相匹配的所有sql命令,并将这些SQL查询转储到第三个文件中.

文件1有1,00,000个条目,文件2包含文件1的条目的10倍,即1,0000.

我使用grep -f File_1 File_2> File_3.但这是非常慢的速度,每小时1000个条目.

有没有更快的方式来做到这一点?

awk的一种方式:
awk -v FS="[ =]" 'NR==FNR{rows[$1]++;next}(substr($NF,1,length($NF)-1) in rows)' File1 File2

这应该很快.在我的机器上,花费不到2秒钟创建一个100万条记录的查询,并将其与300万行进行比较.

机器规格:

Intel(R) Xeon(R) cpu E5-2670 0 @ 2.60GHz (8 cores)
98 GB RAM
原文链接:https://www.f2er.com/bash/386736.html

猜你在找的Bash相关文章