linux 中awk命令删除指定字段中特定字符串前边所有内容

 

001、删除第9个字段gene_id前边的所有内容

[b20223040323@admin2 test]$ ls
a.txt
[b20223040323@admin2 test]$ cat a.txt         ## 测试数据
NC_089035.1     Gnomon  transcript      7328    15219   .       +       .       transcript_id "rna-XM_015766610.3"; gene_id "gene-LOC4326813"; gene_name "LOC4326813"
NC_089035.1     Gnomon  exon    7328    7670    .       +       .       transcript_id "rna-XM_015766610.3"; gene_id "gene-LOC4326813"; gene_name "LOC4326813";
NC_089035.1     Gnomon  exon    7756    8018    .       +       .       transcript_id "rna-XM_015766610.3"; gene_id "gene-LOC4326813"; gene_name "LOC4326813";
[b20223040323@admin2 test]$ awk -F "\t" '{OFS = "\t"; sub(".+gene_id", "gene_id", $9); print $0}' a.txt       ## 测试程序
NC_089035.1     Gnomon  transcript      7328    15219   .       +       .       gene_id "gene-LOC4326813"; gene_name "LOC4326813"
NC_089035.1     Gnomon  exon    7328    7670    .       +       .       gene_id "gene-LOC4326813"; gene_name "LOC4326813";
NC_089035.1     Gnomon  exon    7756    8018    .       +       .       gene_id "gene-LOC4326813"; gene_name "LOC4326813";

。 

 

posted @ 2025-03-11 11:26  小鲨鱼2018  阅读(48)  评论(0)    收藏  举报