在逗号后加载带有不一致空格的CSV文件

时间:2013-01-11 14:21:05

标签: mysql sql database csv

我想使用LOAD DATA INFILE命令加载CSV文件,但逗号后面的空格不一致,即有逗号后跟空格和逗号不是。

我尝试使用FIELDS TERMINATED BY ","指令,但结果表中的某些字段包含一个前导空格;如果输入是

abc,def, ghi, klm

然后加载我的表

column1 = 'abc'
column2 = 'def'
column3 = ' ghi'
column4 = ' klm'

请注意,第3列和第4列包含前导空格。

我希望我的列不包含前导空格。我该怎么做?

2 个答案:

答案 0 :(得分:4)

这会有用吗?

LOAD DATA INFILE 'file.csv'
INTO TABLE t1 (column1, @col2, @col3, @col4)
SET
  column2 = TRIM(@col2),
  column3 = TRIM(@col3),
  column4 = TRIM(@col4)

答案 1 :(得分:1)

您可以使用简短的sed替换模式来执行此操作:

sed -i 's/, /,/g' file.csv

之后,file.csv(其内容为“abc,def,ghi,klm”)包含:

abc,def,ghi,klm