如何从两个文本文件中的单个列中找到匹配模式的前三个数字

时间:2015-05-21 15:58:41

标签: python regex bash shell awk

我想在两个文本文件之间匹配来自单个第二列($ 2)的前三位数(例如:132 ******)。有人可以建议我这样做的脚本吗?。

输入file1:

id = re.findall("(\d+)", result.text)
print id[0]

输入文件2:

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

输出文件3:

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

2 个答案:

答案 0 :(得分:0)

您可以像这样使用awk

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

答案 1 :(得分:0)

awk '{key=substr($2,1,3)} NR==FNR{a[key];next} key in a' file1 file2