2016-05-03 10 views
0

Ich bin auf der Suche nach allen bekannten Tools oder Skripts, die meine BCP-Dateien in CSV-Dateien konvertieren können.konvertieren bcp-Datei in Standard-CSV-Datei

Eingang BCP Dateiformat:

  1. getrennte Felder von 'XXXXXXX'
  2. Reihen von 'YYYYYYY' getrennt
  3. Felder enthält Sonderzeichen wie CRLF, CR, LF ", Tab, Komma etc ...

Ausgabeformat ich möchte:

  1. Datei im Standard-CSV-Format mit Komma-Trennzeichen
  2. Feldwerte sollten Originalinhalte einschließlich Sonderzeichen enthalten (dh keine Addition oder Löschung von Sonderzeichen, CR sollte auch nicht gelöscht werden)
  3. Die Datei kann durchschneiden Spaltenindex/Name, um interessierte Spalten auszuwählen.

Dazu habe ich folgendes:

  1. Transformed die bcp-Datei mit wenigen sed Befehle csv, damit ich die Datei in MS Excel-Programm mit der richtigen Ausrichtung öffnen kann, und ich konnte sehen, Inhalt wurde nicht verändert (wie erwartet).

    sed -i 's/\"/\"\"/g' $inFile

    sed -i 's/XXXXXXX/","/g' $inFile

    sed -i 's/YYYYYYY/"\n"/g' $inFile

    sed -i '1s/^/\"/' $inFile

    sed -i '$s/\"//' $inFile

    sed -i -e '${/^$/d}' $inFile

    sed -i '1s/^/"Header","added","here"\n/' $inFile

  2. Versuchte csvkit Werkzeug: csvcut $infile Dieses Werkzeug ist die bevorzugte Auswahl von Spalten aber den Inhalt wie das Löschen des CR modifiziert.

Irgendwelche Ideen in dieser Art Umwandlung?

+0

Öffnen Sie als CSV aber mit verschiedenen Begrenzern. –

+0

Ein Beispiel für Ihre Eingabedaten, würde helfen, pleasd – Borodin

Antwort

-1

awk zur Rettung!

Escape-Anführungszeichen, Anführungszeichenfelder, Feldtrennzeichen zu Komma ändern und Trennzeichen zu Zeilenumbruch aufzeichnen. $1=$1 zwingt awk, die neuen Begrenzer anzuwenden.