不受欢迎导致在shell脚本中上传csv

时间:2015-06-17 06:01:06

标签: mysql bash shell csv

我使用以下脚本将csv上传到我的数据库

for _csv_file in ${_csv_files[@]}
do
mysql -h $_host -u $_db_user -p$_db_password $_db --local_infile=1 -e "use $_db" -e"
LOAD DATA LOCAL INFILE '$_csv_file'
IGNORE INTO TABLE csv_temp_table
FIELDS TERMINATED BY '\|'
OPTIONALLY ENCLOSED BY '\"'  
IGNORE 1 LINES 
(\`ProductType\`, 
\`Title\`, 
\`Publisher\`, 
     .
     .
     .
     .
     .  
\`Hi_Res_Image\` 
);"
 done  
 exit; 

但是发生了什么,而不是csv中的 63 行,我将 632 行插入到我的数据库中! 我在这做错了什么?请帮我。谢谢!

示例csv

ProductType|Title|Publisher|Navarre Publisher NBR|Platform-Format|Artist|Genre|Theme|Material Group|Box Size|Height(in)|Width(in)|Length(in)|Weight(lb)|CaseHeight(in)|CaseWidth(in)|CaseLength(in)|CaseWeight(lb)|Rating|UPC|Navarre P/N|Mfg P/N|Release Date|MSRP|Description|Lo_Res_Image|Hi_Res_Image
ACCESSORIES|VERSACHECK FORM  1000 BLUE PRESTIGE 500|GLOBAL BIZ FORCE|GBF|APP-BASED ACCESSORY||213|0|ACC-095|LG|2.800|8.900|11.400|6.600|9.300|11.900|13.100|27.400|E|814329506231|8026727|10BP02-6231|08/12/2008|$36.99|VersaCheck® - Form #1000 Business Voucher Check Refills are the perfect 
high-security blank check paper designed specifically to use with all VersaCheck® software products (except personal versions) to print custom business checks that comply 100% with ANSI X9 banking standards. 
 Save 50-80% or more per pack vs. pre-printed mail order checks.<br /><br />This 

1 个答案:

答案 0 :(得分:1)

你的csv似乎有换行符。我假设您的示例csv应该只包含一个条目(在标题下面) - 具有长描述而没有Lo_Res_Image或Hi_Res_Image。

但是描述包括两个换行符,所以当你期望一个换行符时,你最终会在数据库中找到三行。