我正在尝试编写一个shell脚本,用于搜索文件中的文本,并将文本和相关信息打印到单独的文件中。
从包含基因ID列表的文件中
DDIT3 ENSG00000175197
DNMT1 ENSG00000129757
DYRK1B ENSG00000105204
我想在gtf文件中搜索这些基因ID(ENSG *),它们的RPKM1和RPKM2值:
chr16 gencodeV7 gene 88772891 88781784 0.126744 + . gene_id "ENSG00000174177.7"; transcript_ids "ENST00000453996.1,ENST00000312060.4,ENST00000378384.3,"; RPKM1 "1.40735"; RPKM2 "1.61345"; iIDR "0.003";
chr11 gencodeV7 gene 55850277 55851215 0.000000 + . gene_id "ENSG00000225538.1"; transcript_ids "ENST00000425977.1,"; RPKM1 "0"; RPKM2 "0"; iIDR "NA";
并将其打印/写入单独的输出文件
Gene_ID RPKM1 RPKM2
ENSG00000108270 7.81399 8.149
ENSG00000101126 12.0082 8.55263
我在命令行上使用了以下每个ID:
grep -w "ENSGno" rnaseq.gtf| awk '{print $10,$13,$14,$15,$16}' > output.file
但是在编写shell脚本时,我尝试过各种各样的for,while,read,do和change变量,但没有成功。任何想法都会很棒!
答案 0 :(得分:1)
您可以执行以下操作:
while read line
do
var=$(echo $line | awk '{print $2}')
grep -w "$var" rnaseq.gtf| awk '{print $10,$13,$14,$15,$16}' >> output.file
done < geneIDs.file