如何从多个文件中的一个文件解析一个列并连接输出?

凤梨

我有一个这样的文件:

head allGenes.txt
ENSG00000128274
ENSG00000094914
ENSG00000081760
ENSG00000158122
ENSG00000103591
...

而且我在当前目录中有多个名为* .v7.egenes.txt的文件。例如,一个文件如下所示:

head Stomach.v7.egenes.txt
ENSG00000238009 RP11-34P13.7  1  89295 129223  - 2073 1.03557 343.245
ENSG00000237683   AL627309.1  1 134901 139379  - 2123 1.02105 359.907
ENSG00000235146 RP5-857K21.2  1 523009 530148  + 4098 1.03503 592.973
ENSG00000231709 RP5-857K21.1  1 521369 523833  - 4101 1.07053 559.642
ENSG00000223659 RP5-857K21.5  1 562757 564390  - 4236 1.05527 595.015
ENSG00000237973 hsa-mir-6723  1 566454 567996  + 4247 1.05299 592.876 

我想从所有* .v7.egenes.txt文件中获取与allGenes.txt中的任何条目匹配的行

我尝试使用:

grep -w -f allGenes.txt *.v7.egenes.txt > output.txt

但这需要永远完成。有没有办法在awk中执行此操作?

标记融合

在不知道文件大小的情况下,但是假设主机有足够的内存来容纳allGenes.txt在内存中,我awk想到了一种解决方案:

awk 'NR==FNR { gene[$1] ; next } ( $1 in gene )' allGenes.txt *.v7.egenes.txt > output.txt

哪里:

  • NR==FNR-此测试仅匹配要处理的第一个文件(allGenes.txt
  • gene[$1] -将每个基因作为索引存储在关联数组中
  • next 停止处理并转到文件中的下一行
  • $1 in gene-适用于所有其他文件中的所有行;如果发现第一个字段是我们关联数组中的索引,那么我们将打印当前行

我不希望它的运行速度快于grepOP当前正在使用解决方案的速度(特别是在避难所建议使用-F而不是的情况下-w),但是测试和查看它应该相对较快。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过awk从一个文件中的并排列中的多个文件输出数据?

来自分类Dev

在一个命令中连接多个tar文件

来自分类Dev

awk / sed /等在一个文件中连接列

来自分类Dev

如何从不同的文件中提取特定的列并在一个文件中输出?

来自分类Dev

源多个文件并输出一个文件

来自分类Dev

如何将多个文件中的特定列合并到一个文件中

来自分类Dev

将多个文件中的列合并为一个

来自分类Dev

解析多个文件以在gulp中生成一个文件

来自分类Dev

从多个csv文件中抓取一个特定的列并合并为一个

来自分类Dev

如何从一个文件中创建多个列表?

来自分类Dev

如何从Java中的一个文件读取多个protobuf?

来自分类Dev

在一个输出中观察多个日志文件

来自分类Dev

一个输出有多个文件

来自分类Dev

导入多个文件,然后将计算结果输出到一个文件中

来自分类Dev

将多个文件中的同一列粘贴到一个文件中

来自分类Dev

如何将一个文件连接到多个文件?

来自分类Dev

在Gulp中,如果多个文件中的任何一个较新,如何仅对一个文件运行任务?

来自分类Dev

将基于第一列的多个文件粘贴到一个文件中

来自分类Dev

从多个文件中读取内容并写入一个文件

来自分类Dev

从多个文件中获取数据并移至一个文件

来自分类Dev

在一个 JS 文件中包含多个 javascript 文件

来自分类Dev

如何在一个文件中引用一个变量,并能够跨多个文件使用?

来自分类Dev

如何要求一个文件,但要加载一个或多个文件

来自分类Dev

批处理文件-如何读取一个文件夹中的多个.txt文件?

来自分类Dev

如何使用一个命令重命名多个文件夹中的多个文件

来自分类Dev

从一个CSV创建多个文件,从一个列中的每个值创建一个文件[Powershell]

来自分类Dev

在2列中显示ls输出,其中一个目录,另一个显示文件

来自分类Dev

Oracle 连接到多个列中的任何一个

来自分类Dev

如何将多个命令的输出重定向到一个文件

Related 相关文章

  1. 1

    如何通过awk从一个文件中的并排列中的多个文件输出数据?

  2. 2

    在一个命令中连接多个tar文件

  3. 3

    awk / sed /等在一个文件中连接列

  4. 4

    如何从不同的文件中提取特定的列并在一个文件中输出?

  5. 5

    源多个文件并输出一个文件

  6. 6

    如何将多个文件中的特定列合并到一个文件中

  7. 7

    将多个文件中的列合并为一个

  8. 8

    解析多个文件以在gulp中生成一个文件

  9. 9

    从多个csv文件中抓取一个特定的列并合并为一个

  10. 10

    如何从一个文件中创建多个列表?

  11. 11

    如何从Java中的一个文件读取多个protobuf?

  12. 12

    在一个输出中观察多个日志文件

  13. 13

    一个输出有多个文件

  14. 14

    导入多个文件,然后将计算结果输出到一个文件中

  15. 15

    将多个文件中的同一列粘贴到一个文件中

  16. 16

    如何将一个文件连接到多个文件?

  17. 17

    在Gulp中,如果多个文件中的任何一个较新,如何仅对一个文件运行任务?

  18. 18

    将基于第一列的多个文件粘贴到一个文件中

  19. 19

    从多个文件中读取内容并写入一个文件

  20. 20

    从多个文件中获取数据并移至一个文件

  21. 21

    在一个 JS 文件中包含多个 javascript 文件

  22. 22

    如何在一个文件中引用一个变量,并能够跨多个文件使用?

  23. 23

    如何要求一个文件,但要加载一个或多个文件

  24. 24

    批处理文件-如何读取一个文件夹中的多个.txt文件?

  25. 25

    如何使用一个命令重命名多个文件夹中的多个文件

  26. 26

    从一个CSV创建多个文件,从一个列中的每个值创建一个文件[Powershell]

  27. 27

    在2列中显示ls输出,其中一个目录,另一个显示文件

  28. 28

    Oracle 连接到多个列中的任何一个

  29. 29

    如何将多个命令的输出重定向到一个文件

热门标签

归档