我试过使用下面的代码,但csv文件有超过8000万行(大约25GB),并且一些特殊字符似乎中断回声命令。 csv有2列用逗号分隔。 例如:Bash:Base64在非常大的.csv中编码1列,并输出到新文件
blah, blah2
data1,data2
line3,fd$$#$%T%^Y%&$$B
somedata,%^&%^&%^&^
的目标是采取第二列和Base64是要准备好导入到SQL数据库。我在第二列做了base64编码,所以有unicode支持等,没有字符会损坏分贝。 我正在寻找这样做的更有效的方式,不会对特殊字符等打破
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
另一个问题,我发现是第二列可能包含数据中的逗号。无论如何解决? – illwill