使用awk从制表符分隔文件中删除字段

时间:2016-05-28 15:49:40

标签: awk

我正在尝试清理一些制表符描述的文件,并认为下面的awk会从文件中删除字段18 Otherinfo。我也试过cut并且似​​乎无法获得所需的输出。谢谢你:)。

文件

Chr Start   End Ref Alt Func.refGene    Gene.refGene    GeneDetail.refGene  ExonicFunc.refGene  AAChange.refGene    PopFreqMax  CLINSIG CLNDBN  CLNACC  CLNDSDB CLNDSDBID   common  Otherinfo
chr1    949654  949654  A   G   exonic  ISG15   .   synonymous SNV  ISG15:NM_005101:exon2:c.294A>G:p.V98V   0.96    .   .   .   .   .   .   1   3825.28 624 chr1    949654  .   A   G   3825.28 PASS    AF=1;AO=621;DP=624;FAO=399;FDP=399;FR=.;FRO=0;FSAF=225;FSAR=174;FSRF=0;FSRR=0;FWDB=0.00425236;FXX=0.00249994;HRUN=1;LEN=1;MLLD=97.922;OALT=G;OID=.;OMAPALT=G;OPOS=949654;OREF=A;PB=0.5;PBP=1;QD=38.3487;RBI=0.0367904;REFB=0.0353003;REVB=-0.0365438;RO=2;SAF=335;SAR=286;SRF=0;SRR=2;SSEN=0;SSEP=0;SSSB=0.00332809;STB=0.5;STBP=1;TYPE=snp;VARB=-3.42335e-05;ANN=ISG15 GT:GQ:DP:FDP:RO:FRO:AO:FAO:AF:SAR:SAF:SRF:SRR:FSAR:FSAF:FSRF:FSRR   1/1:171:624:399:2:0:621:399:1:286:335:0:2:174:225:0:0 GOOD 399 reads

所需的输出

Chr Start   End Ref Alt Func.refGene    Gene.refGene    GeneDetail.refGene  ExonicFunc.refGene  AAChange.refGene    PopFreqMax  CLINSIG CLNDBN  CLNACC  CLNDSDB CLNDSDBID   common
chr1    949654  949654  A   G   exonic  ISG15   0   synonymous SNV  ISG15:NM_005101:exon2:c.294A>G:p.V98V   0.96    .   .   .   .   .   .

awk (运行但不删除字段18)

awk '{ $18=""; print }' file1

剪切(删除除18之外的所有字段)

cut -f18 file1

1 个答案:

答案 0 :(得分:4)

默认情况下,awk使用空格作为分隔符。因此,您必须指定在输出中使用制表符作为分隔符(OFS):

awk 'BEGIN{FS=OFS="\t"}{$18=""; gsub(/\t\t/,"\t")}1' file1
相关问题