我有一个CSV文件,该文件具有超过10万条记录(文件大小为50mb)。 当我将数据从CSV导入Sqlite3数据库时,出现错误,提示“预期有43列数据,但找到了78个”。
我发现的原因是,CSV文件包含一些无效字符。 (请参阅屏幕截图)
请帮助我使用“ Linux Sed Command”从CSV文件中删除无效字符
我需要使用sed命令修改此命令,以删除无效字符。
sqlite3 /path_to_db/date_sqlite.db
"<<EOS"
.separator '|'
.import /path_to_data_file/data_log_filr tbl_sqlite_data EOS
答案 0 :(得分:0)
假设您的输入文件不是不是 Unicode,因此您确实要删除所有NUL字节,则可以使用以下命令在Shell上执行此操作:
tr -d \\000 <input.csv >output.csv
答案 1 :(得分:0)
要删除文本文件中的空字节
sed 's/\x0//g' PATH TO INPUT FILE > PATH TO OUTPUT FILE
要在PHP Exec中使用
$regx = 's/\x0//g';
$command = sprintf(" sed '%s' $pathToInput > $pathToOutput ", $regx );
exec($command)
希望这会有所帮助。