如果文件1中的列A等于文件2中的列B,则打印行

如果文件1中的列A等于文件2中的列B,则打印行,第1张

概述如果文件1中的列A等于文件2中的列B,则打印行

我有两个文件,文件1看起来像:@H_404_1@

rs12126768 T 0.0252778071842686 rs908742 A -0.0175531592475892 rs3107147 A 0.0253753063312283 rs3128309 A 0.0284902703996274 rs16824948 T 0.0696193418800571 rs2643888 A 0.0452601314048646 rs3795272 T -0.0244976316004002 rs2840531 T -0.0438473997802763 rs10910060 A 0.0364283566135514 rs1129332 T -0.0274739770007551@H_404_1@

文件2看起来像:@H_404_1@

1 rs908742 0 2033256 1 rs3795272 0 2284195 1 rs2840531 0 2286408 1 rs1129332 0 2336210 1 rs7512269 0 2418625 1 rs2247308 0 2445406 1 rs1980789 0 2455863 1 rs3122922 0 2456203 1 rs4648453 0 3025712 1 rs6424069 0 3147030@H_404_1@

如果文件1中的$ 1出现在$ 2的文件2中,我希望它打印该行。 所以期望的输出将是:@H_404_1@

rs908742 A -0.0175531592475892 rs3795272 T -0.0244976316004002 rs2840531 T -0.0438473997802763 rs1129332 T -0.0274739770007551@H_404_1@

预先感谢您的任何帮助。@H_404_1@

Awk / Unix组合@H_404_1@

使用linux为第一列中的每个不同值查找第二列中的最大值@H_404_1@

shell脚本过滤du,并通过子文件夹中的文件内的string查找@H_404_1@

在第一次匹配之前插入行的命令@H_404_1@

高级“uniq”与“唯一部分正则Expression式”@H_404_1@

什么是shell命令来查找在UNIX中两个string最长的公共子string?@H_404_1@

如何在两个文件的匹配列的基础上find列的值?@H_404_1@

检查一个文件中的所有行是否存在于另一个文件中@H_404_1@

在模式之后提取一个string@H_404_1@

从几个文件中计数重复@H_404_1@

试试这一行:@H_404_1@

awk 'NR==FNR{a[$2];next}$1 in a' file2 file1@H_404_1@

我建议这样做的算法是简单的哈希。 通读file2,并记住file2的$ 2中的所有内容。 然后,通过file1读取,如果file1中的$ 1在内存中,则打印该行。@H_404_1@

这是一个perl脚本,@H_404_1@

use strict; open file2,"file2.txt"; my %remember; while(<file2>) { chomp $_; my @fIElds = split; $remember{$fIElds[1]} = 1; } open file1,"file1.txt"; while(<file1>) { chomp $_; my @fIElds = split; if(defined $remember{$fIElds[0]}) { print "$_n"; } }@H_404_1@ 总结

以上是内存溢出为你收集整理的如果文件1中的列A等于文件2中的列B,则打印行全部内容,希望文章能够帮你解决如果文件1中的列A等于文件2中的列B,则打印行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1159363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存