2017-01-07 2 views
1

Ich versuche ein tab-delimitedfile mit awk zu formatieren und der Befehl läuft, aber keine Ausgabeergebnisse. Die output ist auch tab-delimited. Das Format des Ausgangs ist $1$2$2$3REF=$4; OBS=$5$6. Vielleicht ist die awk nicht der beste Ansatz, wie es scheint, sollte es funktionieren. Vielen Dank :).awk Datei mit einer bestimmten Reihenfolge zu formatieren

Datei (~ 370 Zeilen alle im folgenden Format)

chr4 70501545 rs28560191 C A UGT2A1;UGT2A2 

gewünschte Ausgangs

chr4 70501545 70501545 rs28560191 REF=C;OBS=A UGT2A1;UGT2A2 

awk

awk -F'\t' -v OFS='\t' '{print $1,$2,$2,$3,"REF="$4";""OBS="$5,$6}' file 
+1

Ich verstehe die Frage hier nicht wirklich. Sie sollten jedoch die Zeichenfolge "drucken". Warum sollten Sie die Registerkarte zwischen Feldern setzen, wenn Sie OFS bereits eingestellt haben? – fedorqui

+0

Ich habe das gerade auch gesehen. Ich werde bearbeiten. Vielen Dank :). – Chris

+1

Beachten Sie, dass Sie jetzt 'print a, b, c; "OBS = ...". Aus dem ';' wird nichts gedruckt. Sie müssen wahrscheinlich "a, b, c, ..." drucken. – fedorqui

Antwort

1

Sie vergessen die print Aussage.

awk '{ print $1 "\t" $2 "\t" $2 "\t" $3 "\t" "REF="$4";""OBS="$5 "\t" $6}' file 
+0

Vielen Dank, brauche Kaffee :). – Chris

Verwandte Themen