如何从两个文本文件之间的单列中查找前三位匹配模式[关闭]

Posted

技术标签:

【中文标题】如何从两个文本文件之间的单列中查找前三位匹配模式[关闭]【英文标题】:How to find first three digits matching pattern from a single column between two text files [closed] 【发布时间】:2015-08-03 10:05:59 【问题描述】:

我想在两个文本文件之间匹配第二列 ($2) 的前三位数字(例如:132******)。有人可以建议我执行此操作的脚本吗?

输入文件1:

9 73316991 73352391 DEL 99 35401
9 96058269 96059400 DEL 99 1132
9 132186937 132206288 DUP 99 19352
9 138338172 138339132 DEL 99 961

输入文件2:

9 132185894 132209127 DUP 99 23234      
9 140495212 140496044 DEL 99 833 
9 136625162 136626293 DEL 99 1132

输出文件3:

9 132185894 132209127 DUP 99 23234

【问题讨论】:

我们不会为您代劳。在你的 bash 中输入 man grep 看看是否是你需要的。 【参考方案1】:
awk 'key=substr($2,1,3) NR==FNRa[key];next key in a' file1 file2

【讨论】:

非常感谢!另外,是否可以在五个不同的文件中搜索相同类型的模式作为输入?这真的很有帮助。 “有可能吗?”的答案总是“是”。【参考方案2】:

你可以像这样使用awk

awk 'FNR==NRa[substr($2,1,3)];next substr($2,1,3) in a' file1 file2
9 132185894 132209127 DUP 99 23234

【讨论】:

非常感谢!另外,是否可以在五个不同的文件中搜索相同类型的模式作为输入?这真的很有帮助。 有可能,但您不能通过评论添加新问题。如果此答案有效,那么您可以通过单击我的答案左上角的勾号将答案标记为已接受。 您是否尝试在 file1 file2 后面再添加 3 个文件名?

以上是关于如何从两个文本文件之间的单列中查找前三位匹配模式[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

常用算法3 - 字符串查找/模式匹配算法(BF & KMP算法)

Sed - 在两个字符串之间的匹配模式后插入带文本的行

我们如何在匹配两个文本文件时查找和替换单词?

python 查找两个字符串之间的内容

如何从用户文本输入中搜索数据库记录以查找匹配项并避免提取信息? (PHP)

用一条SQL语句查询出所有员工姓名的字母前三位