0

我正在尝试编写一个 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 和更改变量的各种组合,但没有成功。任何想法都会很棒!

4

1 回答 1

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
于 2013-04-18T15:43:52.847 回答