在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |