我正在尝试 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