使用awk从制表符分隔的文件中删除字段
我正试图清理一些选项卡描述的文件,并认为下面的使用awk从制表符分隔的文件中删除字段,awk,Awk,我正试图清理一些选项卡描述的文件,并认为下面的awk将从文件中删除字段18Otherinfo。我还尝试了cut,但似乎无法获得所需的输出。谢谢:) 文件 Chr Start End Ref Alt Func.refGene Gene.refGene GeneDetail.refGene ExonicFunc.refGene AAChange.refGene PopFreqMax CLINSIG CLNDBN CLNACC CLNDSDB CLNDSDBID c
awk
将从文件中删除字段18Otherinfo
。我还尝试了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)
剪切(删除除18以外的所有字段)
默认情况下,awk使用空格作为分隔符。因此,您必须指定在输出中使用制表符作为分隔符(
OFS
):
默认情况下,awk使用空格作为分隔符。因此,您必须指定在输出中使用制表符作为分隔符(
OFS
):
cut-f1-17 file1
应该可以解决这个问题。将来,要意识到,比显示页面宽的数据很难管理,并且您可以像字段18一样轻松地发布字段8的问题。甚至是第五场。祝你好运。可以cut
将删除的字段标题重命名为“Comments”吗?因此,18
字段标题在删除后是“Otherinfo”,它是“Comments”。谢谢:)cut-f1-17 file1
应该可以解决这个问题。将来,要意识到比显示页面更宽的数据很难管理,并且你可以像字段18一样轻松地发布字段8的问题。甚至是第五场。祝你好运。可以cut
将删除的字段标题重命名为“Comments”吗?因此,18
字段标题在删除后是“Otherinfo”,它是“Comments”。谢谢:)删除后,删除的字段能否重新命名为“评论”?可能是($18=“;”Comments“…
)。谢谢:)。对不起,我还不完全清楚您想要什么:如何“重命名”已删除的字段?非常感谢您的帮助:)。删除后的字段能否重新命名为“Comments”?可能是($18=”“;“评论”…
。谢谢:)。对不起,我还不完全清楚您想要什么:如何“重命名”已删除的字段?非常感谢您的帮助:)。
awk '{ $18=""; print }' file1
cut -f18 file1
awk 'BEGIN{FS=OFS="\t"}{$18=""; gsub(/\t\t/,"\t")}1' file1