次のように、7253.txtにリストされている文字列のリストをgrepしようとしています。
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