2016-10-25 67 views
1

我有一個20GB的文件充滿點數據。數據尚未正確導出,整個過程中都有標籤空格。我的意思是文件是這樣的MySQL在文件中加載數據忽略標籤

POINT( -38.071489872015  140.99467884981), 
POINT( -38.071489872015  140.99525003481), 
POINT( -38.071489872015  140.99582121982), 
POINT( -38.071100465759  140.99147345891), 
POINT( -38.071100465759  140.99204464087), 

有沒有辦法忽略第一個和最後一個標籤空間?

我的當前負載數據的腳本是

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/import.txt' 
INTO TABLE tblImport 
LINES TERMINATED BY ',' 
(@pointData) 
SET 
pointData = GeomFromText(@pointData); 

,但我得到的錯誤

[Err] 3037 - Invalid GIS data provided to function st_geometryfromtext. 

感謝

+0

http://stackoverflow.com/questions/13979169/how-to -remove-tabs-at-start-end-of-varchar-field-in-mysql – Rene

+0

@Rene這沒有幫助,導入失敗,因此沒有表格數據來處理。 – msanford

回答

0

sed是處理文本數據的一個非常有效的工具。您可能還想保存已清理的數據集,以防導入失敗,而不是清理並將其傳送到mysql,您也可以這樣做。

嘗試一下與

sed $'s/\t*//g' point_data.sql | head -n 20 > point_data_no_tabs_short.sql 

清潔20行確保你得到你所期望的。

如果一切正常,清潔就地整個文件:

sed -i.bak $'s/\t*//g' point_data.sql 

或創建一個清潔的副本:

sed $'s/\t*//g' point_data.sql > point_data_no_tabs.sql