Speichern Sie jede Zeile aus der CSV-Datei in einer neuen Datei, wobei der Dateiname die Zeichenfolge ist, die in einer bestimmten Spalte enthalten ist.

Speichern Sie jede Zeile aus der CSV-Datei in einer neuen Datei, wobei der Dateiname die Zeichenfolge ist, die in einer bestimmten Spalte enthalten ist.

Ich habe auf einem Linux-Rechner eine CSV-Datei wie diese:

value1 value2 name  
1      2      a  
2      3      b  
4      5      c  

nIch möchte die Einträge in dieser CSV-Datei in nTextdateien aufteilen, wobei nur die entsprechenden Zahlen in dieser Datei durch Leerzeichen getrennt sind. N wird durch den Wert im Namen bestimmt.

Die obige CSV-Datei würde also folgendermaßen aussehen:

  • a.txtenthaltend1 2
  • b.txtenthaltend2 3
  • c.txtenthaltend4 5

Falls zu einem bestimmten Thema mehrere Einträge vorhanden sind name, sollten diese in einer Datei zusammengefasst werden.

Ex wenn es

1  2  a   
21 31 a

dann sollte es eine Single geben a.txtmit

1  2     
21 31

Antwort1

Eigentlich ist es ganz einfach

awk '{print $1, $2 > $3 ".txt"}' file.csv

Nur wenn mehr als etwa tausend neue Dateien hinzukommen, dürften Sie in Schwierigkeiten geraten

verwandte Informationen