将 CSV 文件导入 Sqlite3 数据库时删除无效字符的 sed 命令

sed command to remove invalid characters when import CSV file into Sqlite3 Database

我有超过 100K 条记录的 CSV 文件(文件大小为 50mb)。 当我将数据从 CSV 导入到 Sqlite3 数据库时收到错误提示 "expected 43 columns of data but found 78".

我发现的原因是,CSV 文件包含一些无效字符。 (参考截图)

请帮助我使用 "Linux Sed Command"

从 CSV 文件中删除无效字符

https://prnt.sc/odr7hb

我需要用 sed 命令修改这个命令以删除无效字符。

sqlite3 /path_to_db/date_sqlite.db 
"<<EOS" 
.separator '|' 
.import /path_to_data_file/data_log_filr tbl_sqlite_data EOS

Null Byte = These are the characters I need to remove

假设你的输入文件是 不是 Unicode,所以你真的想删除所有 NUL 字节,你可以在 shell 上用

tr -d \000 <input.csv >output.csv

删除文本文件中的空字节

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)

希望这对您有所帮助。