2016-12-02 1 views
0

In der folgenden tab-delimitedfile Ich versuche, $1 und $9 und den leeren Raum oder Daten darin zu entfernen. Meine zwei Versuche scheinen $1 und die darin enthaltenen Daten zu entfernen. Vielen Dank :).awk zum Entfernen von Feldern und Leerzeichen oder Daten darin

Datei

R_Index Chr Start End Ref Alt Func.IDP.refGene Gene.IDP.refGene GeneDetail.IDP.refGene Inheritence ID 
1 chr1 40562993 40562993 T C UTR5 PPT1 NM_000310.3:c.-83A>G  1 

awk

awk '{sub(/^[^\t]*\t/, "") 
gsub(/ /, "") 
}1 
' file  

awk -F'\t' '{$1=x;sub(/^\t/,y)}1' OFS='\t' file 

awk -F'\t' '{$1 && $9=x;sub(/^\t/,y)}1' OFS='\t' file 

gewünschte Ausgangs

Chr Start End Ref Alt Func.IDP.refGene Gene.IDP.refGene GeneDetail.IDP.refGene ID 
chr1 40562993 40562993 T C UTR5 PPT1 NM_000310.3:c.-83A>G 1 
+0

erste Zeile hat '11' Felder, zweite Zeile hat' 10' Felder .... ist '" \ t "' das Trennzeichen? .... bitte, um das Eingabebeispiel –

+0

zu ändern Ich habe die 'Datei' bearbeitet und ja, tut mir leid, es ist' tab-limited' sowie die 'Ausgabe'. Es gibt "11" Felder in "Datei" und die "9" in der "Ausgabe" als zwei Felder und dort werden Daten/Leerzeichen entfernt. Vielen Dank :). – Chris

+0

Bitte zeigen Sie uns die Codezeilen, die versuchen, die $ 9 zu entfernen. – Jdamian

Antwort

2

awk t o die Rettung!

$ awk -F'\t' '{sub(/[^ ]+ /,"",$1);sub(/[^ ]+ /,"",$NF)}1' file1 | 
    column -t 

Chr Start  End  Ref Alt Func.IDP.refGene Gene.IDP.refGene GeneDetail.IDP.refGene ID 
chr1 40562993 40562993 T C UTR5    PPT1    NM_000310.3:c.-83A>G 1 
+0

Vielen Dank :). – Chris

Verwandte Themen