Zeilen in Textdatei entsprechend einem Spaltenwert replizieren

Zeilen in Textdatei entsprechend einem Spaltenwert replizieren

Ich habe eine Textdatei mit einer Spalte, die Text/Daten enthält, gefolgt von einer Fülle-Spalte, z. B.

Auto 3

Apple 2

Um diese Spalten zu subsampeln, möchte ich jede Textspalte um den Betrag der Häufigkeitsspalte replizieren, z. B.

Wagen 1

Wagen 1

Wagen 1

Apfel 1

Apfel 1

Irgendeine Idee, wie man das zum Beispiel mit awk erreichen kann?

Antwort1

Wenn ich die Frage richtig verstehe, könnten Sie dies tun

awk '{for(i=0;i<$NF;i++)print $1,"1\n"}' file

Einen kürzeren Weg gefunden

awk '{while($2--)print $1,"1\n"}' file

Antwort2

versuchen

 awk '{ for (i=$2 ; i ; i--) printf "%s 1\n",$1 ; } ' < text

Wo

- `for (i=$2 ; i ; i--)` is a loop that starting from second field value decrease to 1
- `printf "%s 1\n",$1`  print first field with a 1

verwandte Informationen