Ich habe versucht, mit dem Code unten, aber die CSV-Datei hat über 80 Millionen Zeilen (etwa 25 GB) und einige der Sonderzeichen scheinen zu brechen der echo-Befehl Der CSV hat 2 Spalten, die durch ein Komma getrennt sind. ex:Bash: Base64 kodiert 1 Spalte in einer sehr großen .csv und Ausgabe in neue Datei
blah, blah2
data1,data2
line3,fd$$#$%T%^Y%&$$B
somedata,%^&%^&%^&^
Das Ziel ist, dass die zweite Säule zu nehmen und base64 ist bereit, um in eine SQL-Datenbank zu importieren. Ich mache eine Base64-Codierung für die zweite Spalte, also gibt es Unicode-Unterstützung usw. und kein Zeichen wird die Datenbank beschädigen. Ich bin auf der Suche nach einer effizienteren Art und Weise, dies zu tun, die auf Sonderzeichen nicht brechen usw.
awk -F "," '
{
"echo "$2" | base64" | getline x
print $1, x
}
' OFS=',' input.csv > base64.csv
Fehler:
sh: 1: Syntax error: word unexpected (expecting ")") :
not foundrf :
not found201054 :
not foundth :
not foundz09
| base64' (Too many open files)ut.csv FNR=1078) fatal: cannot open pipe `echo q1w2e3r4
ein anderes Problem im Finden ist die zweite Spalte kann ein Komma innerhalb der Daten auch enthalten sowieso um das zu umgehen – illwill