2016-08-09 88 views
1

Ich mag würde eine 6-Säule nehmen (~ 1,3 Millionen Linie) Datei und kopieren Sie die auf dem Wert in der Spalte basierend Linien 4. Eingang:Doppelte oder Linien basierend auf Spaltenwert replizieren

chr1 6209 6234 2 255 + 
chr1 6686 6710 1 255 + 
chr1 6755 6780 3 255 + 

Ausgang

Bitte meine scripting Ignoranz vergeben:: ich konnte nicht meine Spalten pflegen

chr1 6209 6234 2 255 + 
chr1 6209 6234 2 255 + 
chr1 6686 6710 1 255 + 
chr1 6755 6780 3 255 + 
chr1 6755 6780 3 255 + 
chr1 6755 6780 3 255 + 

ich habe this question die sehr ähnlich war gefunden, aber wenn ich den Code zu verwenden versucht. Irgendwelche Vorschläge werden geschätzt.

Antwort

6

awk zur Rettung!

$ awk '{c=$4; while(c-->0) print}' file 

chr1 6209 6234 2 255 + 
chr1 6209 6234 2 255 + 
chr1 6686 6710 1 255 + 
chr1 6755 6780 3 255 + 
chr1 6755 6780 3 255 + 
chr1 6755 6780 3 255 +