首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从选项卡分隔的列中剪切特定行?

如何从选项卡分隔的列中剪切特定行?
EN

Unix & Linux用户
提问于 2019-09-14 15:15:34
回答 1查看 184关注 0票数 0

我有一个文件(.gff3),其中有九个列由制表符隔开。

代码语言:javascript
复制
##gff-version 3
##other information
0 . mRNA            1300  9000  .  +  .  ID=mrna0001;Name=sonichedgehog
1 . exon            1300  1500  .  +  .  ID=exon00001;Parent=mrna0001
2 . exon            1050  1500  .  +  .  ID=exon00002;Parent=mrna0001
3 . exon            3000  3902  .  +  .  ID=exon00003;Parent=mrna0001
4 . exon            5000  5500  .  +  .  ID=exon00004;Parent=mrna0001
5 . exon            7000  9000  .  +  .  ID=exon00005;Parent=mrna0001

我试图从第一列的所有9列中获取所有信息,第一列以数字5开头,我的文件大约为450 My。

因此,我希望从第1-9栏的全部信息中得到如下所示:

代码语言:javascript
复制
5 . exon            1300  1500  .  +  .  ID=exon00001;Parent=mrna0001
5 . exon            1050  1500  .  +  .  ID=exon00002;Parent=mrna0001
5 . exon            3000  3902  .  +  .  ID=exon00003;Parent=mrna0001
5 . exon            5000  5500  .  +  .  ID=exon00004;Parent=mrna0001
5 . exon            7000  9000  .  +  .  ID=exon00005;Parent=mrna0001

我试过了

代码语言:javascript
复制
grep '5' [FILE].gff3 >[NEWFILE].txt
代码语言:javascript
复制
cut -d'5' -f1-9 [FILE].gff3

这些都是给我的文件,没有从第1栏的信息,从数字5开始,所以,它是相反的,我想要得到的。

EN

回答 1

Unix & Linux用户

发布于 2019-09-14 18:35:18

要提取5号染色体的所有数据,可以使用一个简单的awk命令:

代码语言:javascript
复制
awk -F '\t' '$1 == "5"' file.gff3 >chr5.gff3

还可以包括GFF标题:

代码语言:javascript
复制
awk -F '\t' '/^#/ || $1 == "5"' file.gff3 >chr5.gff5

这些命令中的任何一个都将从file.gff3读取并将提取的数据写入新文件chr5.gff3

例如,您可以很容易地将其扩展到只包含外显子:

代码语言:javascript
复制
awk -F '\t' '/^#/ || ($1 == "5" && $3 == "exon")' file.gff3 >chr5.gff5
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/541735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档