2016-05-28 2 views
0

Я пытаюсь очистить некоторые файлы с разделителями табуляции и подумал, что awk ниже удалит поле 18 Otherinfo из файла. Я также попробовал cut и не мог получить желаемый результат. Спасибо :).удалить поле из файла с разделяемым разделом, используя awk

файл

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

'вырезать -f1-17 file1' должен сделать трюк. –

+0

в будущем, поймите, что данные, которые шире, чем отображаемая страница, трудно справиться, и что вы можете отправить проблему так же легко для поля 8, как поле 18. Или даже поле 5. Удачи. – shellter

+0

может 'cut' переименовать удаленный заголовок поля в« Комментарии »? Таким образом, заголовок поля 18-го года был «Otherinfo» после его удаления, это «Комментарии». Спасибо :) – Chris

ответ

4

По умолчанию, AWK использует пробелы в качестве разделителей. Таким образом, вы должны указать, использовать вкладки как разделители в вашем выводе (OFS):

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

Может ли удаленное поле быть переименовано в «Комментарии» после его удаления? Может быть '($ 18 =" ";" Комментарии "....'. Спасибо :). – Chris

+0

Извините, мне все еще не совсем ясно, что вы хотите: как можно «переименовать» уже удаленное поле? –

+0

Большое спасибо за вашу помощь :). – Chris

Смежные вопросы