[英]Deleting all lines matching a specific pattern by retaining the first line in bash
I want to edit a gtf file by deleting all the lines except the first line matching pattern 'FAT1' and modify the coordinates ( 3rd & 4th columns).我想通过删除除第一行匹配模式“FAT1”之外的所有行并修改坐标(第 3 列和第 4 列)来编辑 gtf 文件。
#!genome-build GRCh38.p7
#!genome-version GRCh38
#!genome-date 2013-12
#!genome-build-accession NCBI:GCA_000001405.22
#!genebuild-last-updated 2016-06
1 havana exon 137682 137965 gene_id "ENSG00000239906"; gene_version "1"; gene_name "RP11-34P13.16"; gene_source "havana";
1 havana gene 139790 140339 gene_id "ENSG00000239906"; gene_version "1"; gene_name "RP11-34P13.14"; gene_source "havana";
1 havana exon 140001 140101 gene_id "ENSG00000269981"; gene_version "1"; gene_name "FAT1"; gene_source "havana";
1 havana gene 143401 145401 gene_id "ENSG00000269981"; gene_version "1"; gene_name "FAT1"; gene_source "havana";
expected output预计 output
#!genome-build GRCh38.p7
#!genome-version GRCh38
#!genome-date 2013-12
#!genome-build-accession NCBI:GCA_000001405.22
#!genebuild-last-updated 2016-06
1 havana exon 137682 137965 gene_id "ENSG00000239906"; gene_version "1"; gene_name "RP11-34P13.16"; gene_source "havana";
1 havana gene 139790 140339 gene_id "ENSG00000239906"; gene_version "1"; gene_name "RP11-34P13.14"; gene_source "havana";
1 havana exon 147653 148000 gene_id "ENSG00000269981"; gene_version "1"; gene_name "FAT1"; gene_source "havana";
I tried some thing like this.我试过这样的事情。
# Keep only the unique entry for FAT1 gene.
awk '/"ENSG00000269981"/&&c++ {next} 1' ref.gtf > ref_edit.gtf
#then manually edit the coordinates in vim editor
But i'm sure there will be more reasonable solution.但我相信会有更合理的解决方案。
Could you please try following.请您尝试以下操作。
awk -v new_fourth_col="147653" -v new_fifth_col="148000" '
BEGIN{
OFS="\t"
}
/gene_name "FAT1"/{
if(++count==1){
$4=new_fourth_col
$5=new_fifth_col
print
}
next
}
{
$1=$1
print
}
' Input_file
Also I have made your output as tab delimited.此外,我已将您的 output 设为制表符分隔。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.