
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