linux - 我如何比较 3 个文件(以查看它们之间的共同点)?

标签 linux comparison awk wc

我想将 3 个文件放在一起进行比较,看看文件中有多少信息是相同的。文件格式是这样的:

Chr11   447     .       A       C       74      .       DP=22;AF1=1;CI95=1,1;DP4=0,0,9,8;MQ=15;FQ=-78   GT:PL:GQ        1/1:107,51,0:99
Chr10   449     .       G       C       35      .       DP=26;AF1=0.5;CI95=0.5,0.5;DP4=5,0,7,8;MQ=20;FQ=11.3;PV4=0.055,0.0083,0.028,1   GT:PL:GQ        0/1:65,0,38:41
Chr12   517     .       G       A       222     .       DP=122;AF1=1;CI95=1,1;DP4=0,0,77,40;MQ=23;FQ=-282       GT:PL:GQ        1/1:255,255,0:99
Chr10   761     .       G       A       41      .       DP=93;AF1=0.5;CI95=0.5,0.5;DP4=11,34,6,35;MQ=19;FQ=44;PV4=0.29,1.8e-35,1,1      GT:PL:GQ        0/1:71,0,116:74

我只对前两列感兴趣(如果前两列相同,那么我认为它们相等)。这是我用来比较两个文件的命令:

awk 'FILENAME==ARGV[1] {pair[$1 " " $2]; next} ($1 " " $2 in pair)'  file1 file2 | wc -l

我想使用 awk 命令,因为我的文件非常大,awk 处理它们非常好!但我不知道如何将它用于 3 个文件!

最佳答案

无意挑起编辑器大战,但我熟悉VI,vimdiff及其变体以并行 View 显示多个文件之间的比较,我觉得非常好用。简单地你可以用

调用它
$ vimdiff <filelist>

关于linux - 我如何比较 3 个文件(以查看它们之间的共同点)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964807/

相关文章:

c++ - Visual Studio 2017 Linux 远程构建 - 在每个构建中重新编译所有 cpp 文件

linux - 如何从目录压缩中输出base64

c - strcasecmp() : A Non-Standard Function?

c - 比较 "if (arr<=arr1)"在给定程序中如何工作?

linux - 从两个不同的文本文件中读取并获取每一行列

c - 服务器/客户端消息在 C 中传递

php - 3个不同的等于

linux - 如何在linux shell脚本中获取预期的字符串

linux - 使用列条件在 uniq 之后打印行

python - 如果 file1 的第一列与 file2 中的任何字符串匹配,则将其替换为 file1 的第二列