私は以下のコードを試してみましたが、CSVファイルは8000万行(およそ25GB)を超えており、エコーコマンド。 csvには2つのカラムがカンマで区切られています。 例:Bash:Base64で非常に大きな.csvの1列をエンコードして新しいファイルに出力する
blah, blah2
data1,data2
line3,fd$$#$%T%^Y%&$$B
somedata,%^&%^&%^&^
目標は、第二のカラムとbase64では、SQL DBにインポートする準備をしていることを取ることです。 2番目の列でbase64エンコードを行っているので、Unicodeサポートなどがあり、文字がないとdbが破損します。 私はなど特別な文字で中断されませんこれを行うには、より効率的な方法を探しています
awk -F "," '
{
"echo "$2" | base64" | getline x
print $1, x
}
' OFS=',' input.csv > base64.csv
エラー:
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
もう1つの問題は、データ内にコンマが含まれている可能性があることです。 – illwill