加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:54:42 所属栏目:安全 来源:网络整理
导读:我有2个文件.第一个文件包含数据库中表的元组的行ID列表. 第二个文件包含查询的“where”子句中的这些行ID的SQL查询. 例如: 文件1 1610657303161065846416106591691610668135161066835016106704071610671066 文件2 update TABLE_X set ATTRIBUTE_A=87 where
我有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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读