linux 中 sed命令实现仅保留匹配字段的内容

发布时间 2023-05-16 18:43:35作者: 小鲨鱼2018

 

001、

[root@PC1 test4]# ls
a.txt
[root@PC1 test4]# cat a.txt           ## 测试数据
gbkey=mRNA;gene=ATP5O;model;evidence;Supporting
[root@PC1 test4]# sed 's/\(.*\)\(gene=[^;]\+\)\(.*\)/\2/' a.txt  ## 利用正则和预存储实现
gene=ATP5O

 

 

002、

[root@PC1 test4]# ls
a.txt
[root@PC1 test4]# cat a.txt        ## 测试数据
ID=gene-LOC104645797;Dbxref=GeneID:104645797;Name=LOC104645797;gbkey=Gene;gene=LOC104645797;gene_biotype=lncRNA
ID=gene-GAD3;Dbxref=GeneID:100147723;Name=GAD3;description=glutamate decarboxylase isoform3;gbkey=Gene;gene=GAD3;gene_biotype=protein_coding;gene_synonym=LeGAD3,SlGAD3
ID=gene-LOC101263636;Dbxref=GeneID:101263636;Name=LOC101263636;gbkey=Gene;gene=LOC101263636;gene_biotype=protein_coding
ID=gene-sos1;Dbxref=GeneID:778208;Name=sos1;description=plasmalemma Na+/H+ antiporter;gbkey=Gene;gene=sos1;gene_biotype=protein_coding;gene_synonym=SlSOS1
ID=gene-LOC101263144;Dbxref=GeneID:101263144;Name=LOC101263144;gbkey=Gene;gene=LOC101263144;gene_biotype=protein_coding
ID=gene-LOC101247456;Dbxref=GeneID:101247456;Name=LOC101247456;gbkey=Gene;gene=LOC101247456;gene_biotype=protein_coding
[root@PC1 test4]# sed 's/\(.*\)\(gene=[^;]\+\)\(.*\)/\2/' a.txt   ## 提取命令
gene=LOC104645797
gene=GAD3
gene=LOC101263636
gene=sos1
gene=LOC101263144
gene=LOC101247456