Kopieren von einer PSV-Datei in eine Excel-Datei für mehrere Spalten

Kopieren von einer PSV-Datei in eine Excel-Datei für mehrere Spalten

Meine PSV-Datei sieht so aus

Column1|Column2|Column3
Web_Value_in_file|123|OLA
Tab_Value_out_file|453|OLA

Quell- und Zielspalten sind unterschiedlich. Ich möchte den Wert aus Spalte 1 mit dem Trennzeichen _ auf mehrere Spalten im Ziel kürzen. Ich möchte, dass die Ausgabedatei wie in Excel aussieht (.xlsx).

Column1 Column2 Column3
Web     In      123
Tab     Out     453

Antwort1

Ich denke, das ist, was Sie suchen:

column -s '|' -t file

Vorausgesetzt, in keinem der Felder sind Pipe-Zeichen eingebettet. Zum Parsen von generischen CSV-Daten verwenden Siecsvkit.

Antwort2

Mit einer entsprechend aktuellen Version vonMüller

$ ~/src/miller/c/mlr --csvlite --ifs '|' --ofs tab put '
    x = splitnv($Column1,"_"); $Column3 = $Column2; $Column2 = capitalize(x[3]); $Column1 = x[1]
  ' then cat file.psv
Column1 Column2 Column3
Web     In      123
Tab     Out     453

Bei älteren Versionen von Miller können Sie die Funktion möglicherweise nicht verwenden capitalize– Sie können entweder mit den Kleinbuchstaben in/ leben oder / durch Ersetzen durch outin Großbuchstaben umwandeln .INOUTcapitalizetoupper

verwandte Informationen