如何解析一个文件中的字符串以及多个其他文件中的字符串?

如何解析一个文件中的字符串以及多个其他文件中的字符串?

我正在尝试 grep 7253.txt 中列出的字符串列表,如下所示:

rs11078372 
rs1124961 
rs11651880 
rs11659047 
rs1736209

使用:

grep -o -f 7253.txt *.logistic > result.txt

来自多个文件 *.logistic。这些文件较大,并且此 grep 命令需要很长时间。

.logistic 文件如下所示:

#CHROM  POS  ID REF ALT A1  TEST    OBS_CT  OR  LOG(OR)_SE  Z_STAT  P
17  16933404    rs11867934  T   C   T   ADD 32232   0.974082    0.0279353   -0.940008   0.347213

因此 7253.txt 中的字符串与 .logistic 中的 ID 列相匹配。而且它们应该是完全匹配的。

您有更有效的方法来解析这些 *.logistic 文件吗?

这些文件有 22 个,它们的名称如下:FINchr1.pheno.glm.logistic、FINchr2.pheno.glm.logistic...

如果我可以在 result.txt 中从 .logistic 中提取 ID 和 P 的列(第 3 列和第 12 列),那就太好了

要从 .logistic 中仅提取 ID,我可以这样做:

awk 'FNR!=1 {print $3}' *.logistic | grep -o -w -F -f 7253.txt > result.txt

但是如何提取 .logistic 中的第 3 列和第 12 列 ID 和 P 列

谢谢安娜

答案1

也许你想要

awk '
    NR == FNR {ids[$1]=1; next}
    $3 in ids {print $3, $12}
' 7253.txt *.logistic > result.txt

相关内容