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 out
in Großbuchstaben umwandeln .IN
OUT
capitalize
toupper