2

コマンドを使用して CSV ファイルをロードしたいのですLOAD DATA INFILEが、カンマの後のスペースに一貫性がありません。つまり、カンマの後にスペースが続き、そうでないカンマがあります。

ディレクティブを使用してみFIELDS TERMINATED BY ","ましたが、結果のテーブルの一部のフィールドに先頭のスペースが含まれていました。入力が

abc,def, ghi, klm

それから私のテーブルをロードした後

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

3 列目と 4 列目に先頭のスペースが含まれていることに注意してください。

列の先頭にスペースを含めないようにしたい。どうすればいいですか?

4

2 に答える 2

4

これは機能しますか?

LOAD DATA INFILE 'file.csv'
INTO TABLE t1 (column1, @col2, @col3, @col4)
SET
  column2 = TRIM(@col2),
  column3 = TRIM(@col3),
  column4 = TRIM(@col4)
于 2013-01-11T14:30:16.520 に答える
1

短いsed置換パターンを使用してそれを行うことができます:

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

その後、file.csv (その内容は "abc,def, ghi, klm" でした) には以下が含まれます。

abc,def,ghi,klm
于 2013-01-11T14:32:43.737 に答える