SQLITE - 如何在导入时忽略引号?

时间:2017-07-24 07:57:11

标签: csv sqlite

背景。 我已经弄脏了"脏"我需要导入SQLITE的数据。我每天都有5-6万行,所以我需要一些自动化。数据以.txt文件形式显示,标签分隔。

这是我的代码,直到现在:

<<
DROP TABLE IF EXISTS Import;
CREATE TABLE Import (field1 text,field2 text,field3 text,field4 text,field5 text,field6 text,field7 text,field8 text,field9 text,field10 text,field11 text);
.mode csv
.separator "\t"
.import MyFile.txt import

SELECT COUNT(*) AS count FROM import;
>>

它有效,但是因为数据包含(未闭合)&#34;在一些行的末尾标记,因此我的导入错过了大约20%的行。 编辑 - 添加了示例数据

name.2017   11301   KX_204  text/X1 text.url            2017-07-24 12:56:49.000     "t
name.2017   11301   KX_205  text/X2 text.url            2017-07-24 12:56:49.000     "th
name.2017   11301   KX_206  text/X3 text.url            2017-07-24 12:56:49.000     "the
name.2017   11301   KX_207  text/X4 text.url            2017-07-24 12:56:49.000     
name.2017   11301   KX_208  text/X5 text.url            2017-07-24 12:56:49.000     "da

如果我通过SQLITE GUI(SQliteBrowser)进行导入,则在取消选中&#34; -box时它可以正常工作。

如何从命令行完成相同操作?

1 个答案:

答案 0 :(得分:0)

你可以像这样使用sed丢弃双引号和后面的任何内容:

sed 's/".*//' MyFile.txt > CleanedUp.txt