如何查找文件中是否存在一行并使用 awk 添加具有文件名的列?

玛塔玛

我正在尝试查找文件中的行是否已存在于另一个文件中,在这种情况下,添加带有文件名的列。

文件1:

 CHROM  POS REF ALT
 chr1   10  T   A
 chr1   12  T   G
 chr1   12  T   C

文件2:

 CHROM  POS REF ALT
 chr1   12  T   C
 chr1   13  A   T

我想检查文件 2 中的任何行是否在文件 1 中。

预期输出:

 CHROM  POS REF ALT
 chr1   10  T   A
 chr1   12  T   G
 chr1   12  T   C   file2

我试过这个代码:

 `awk -F"\t" 'FNR==NR
 {
   seen[$0];next
  }($0 in seen)
 {
   delete seen[$0]
 };
   END{
    for (x in seen);$(NF+1)="file";print
       }
  {print}' OFS="\t" file2  file1`

但这并没有按预期工作。这就是我得到的:

 CHROM  POS REF ALT
  chr1  10  T   A
  chr1  12  T   G
  chr1  12  T   C
  chr1  12  T   C   file2

我怎样才能删除重复的行?谢谢!

拉文德辛格13

你能不能试试以下。

awk '
FNR==1 && FNR==NR{
  print
  next
}
FNR==NR{
  a[$0]=FILENAME
  next
}
FNR>1{
  print $0,$0 in a?OFS a[$0]:""
}'  file2  file1

输出如下。

CHROM  POS REF ALT
chr1   10  T   A 
chr1   12  T   G 
chr1   12  T   C  file2

注意:如果 Input_files 是 TAB 分隔的,我们也需要以 TAB 分隔的形式输出,然后BEGINawk之后添加一个部分awk 'BEGIN{FS=OFS="\t"}....

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

awk脚本列出具有指定文件名的文件

来自分类Dev

如何使用Awk从列显示文件名?

来自分类Dev

awk:在循环中添加带有文件名的列名

来自分类Dev

awk / sed文件名添加到模式匹配

来自分类Dev

使用sed / awk / grep在多个文件的同一行中查找min?

来自分类Dev

如何使用sed(或awk或perl单行)从文件A中的特定列获取值并使用它来查找文件B中的行?

来自分类Dev

如何使用sed(或awk或perl单行代码)从文件A中的特定列获取值,并使用它来查找文件B中的行?

来自分类Dev

使用awk提取带有空格的文件名

来自分类Dev

如何检查awk中是否存在文件?[-d'文件名']失败

来自分类Dev

查找文件并添加一行

来自分类Dev

PIPE之后,awk中的文件名

来自分类Dev

awk更新目录中的文件名

来自分类Dev

使用Awk将file1的每一行保存到新文件中,文件名来自file2的每一行

来自分类Dev

打印匹配 awk 脚本的文件名

来自分类Dev

比较两个具有通用文件名的文件,但如果匹配则希望两者都输出,如何使用awk?

来自分类Dev

如何在Expect脚本中查找文件是否存在

来自分类Dev

如何在Expect脚本中查找文件是否存在

来自分类Dev

使用awk查找哪一行的列数更少

来自分类Dev

从不同的文件夹导入文件,添加具有从每个文件名提取的值的列?

来自分类Dev

需要了解以下awk命令以查找文件中的缺失行

来自分类Dev

通过使用awk删除多个文件中的扩展名,将文件名添加到标头中

来自分类Dev

使用awk在文件中的字符串之前添加一行

来自分类Dev

awk:如何从查找文件中获取整个字符串

来自分类Dev

awk:如何从查找文件中获取整个字符串

来自分类Dev

如何在awk中打印文件名?

来自分类Dev

如何在awk中获取文件名

来自分类Dev

文件中的每一行作为awk中的键

来自分类Dev

如何使用awk打印路径文件名的尾部

来自分类Dev

如何使用AWK在URL中选择文件名?

Related 相关文章

  1. 1

    awk脚本列出具有指定文件名的文件

  2. 2

    如何使用Awk从列显示文件名?

  3. 3

    awk:在循环中添加带有文件名的列名

  4. 4

    awk / sed文件名添加到模式匹配

  5. 5

    使用sed / awk / grep在多个文件的同一行中查找min?

  6. 6

    如何使用sed(或awk或perl单行)从文件A中的特定列获取值并使用它来查找文件B中的行?

  7. 7

    如何使用sed(或awk或perl单行代码)从文件A中的特定列获取值,并使用它来查找文件B中的行?

  8. 8

    使用awk提取带有空格的文件名

  9. 9

    如何检查awk中是否存在文件?[-d'文件名']失败

  10. 10

    查找文件并添加一行

  11. 11

    PIPE之后,awk中的文件名

  12. 12

    awk更新目录中的文件名

  13. 13

    使用Awk将file1的每一行保存到新文件中,文件名来自file2的每一行

  14. 14

    打印匹配 awk 脚本的文件名

  15. 15

    比较两个具有通用文件名的文件,但如果匹配则希望两者都输出,如何使用awk?

  16. 16

    如何在Expect脚本中查找文件是否存在

  17. 17

    如何在Expect脚本中查找文件是否存在

  18. 18

    使用awk查找哪一行的列数更少

  19. 19

    从不同的文件夹导入文件,添加具有从每个文件名提取的值的列?

  20. 20

    需要了解以下awk命令以查找文件中的缺失行

  21. 21

    通过使用awk删除多个文件中的扩展名,将文件名添加到标头中

  22. 22

    使用awk在文件中的字符串之前添加一行

  23. 23

    awk:如何从查找文件中获取整个字符串

  24. 24

    awk:如何从查找文件中获取整个字符串

  25. 25

    如何在awk中打印文件名?

  26. 26

    如何在awk中获取文件名

  27. 27

    文件中的每一行作为awk中的键

  28. 28

    如何使用awk打印路径文件名的尾部

  29. 29

    如何使用AWK在URL中选择文件名?

热门标签

归档