我有許多單獨的文本文件,我想將其導入到SQL數據庫中。數據不是以逗號分隔的,因此排除了使用我用逗號導入數據的想法。但是,數據跨越多行。見下面的示例文本文件。請任何人都可以告訴我如何導入特定的數據,如程序和平均值,班次數等?將文本文件導入到SQL數據庫中
-2
A
回答
-1
你可以寫在C#中的簡單應用程序來解析使用正則表達式的文件的內容,把它變成一條線,並在需要插入分號。
0
它看起來像你有一個機器生成的報告。理想的方法是讓該機器生成一個不同的報告 - 一個沒有「/////」或任何廢話,只是你想要導入的數據。因此,新報告的輸出可能如下所示。
shift_num, prog_min, mean_sec, att_sec, adt_min
1, 600, 599, 658, 210
...
實際上,通常不可能得到那樣的報告。 (也就是說,它總是可能會讓機器執行此操作,但人們往往不願意這樣做。)發生這種情況時,請使用您最喜愛的文本處理語言將報告轉換爲可用數據。
我喜歡這種東西的awk。其他人喜歡perl。
爲了說明這一點,我在這個報告的副本中輸入了關鍵字。 (保存爲test.dat)
ORDER Nr FG68909 Q.ty Ordered 99
...
SHIFT Nr. 1
////////
PROGRAMMED MEAN
600 min JOB TIME 599 sec
AVERAGE Turnaround Time 658 sec
AVERAGE Delivery Time 210 mins
然後我寫了這個awk程序。它對報告的佈局做了很多假設。其中一些可能會在真實數據上失敗。
/SHIFT/ {shift = $NF}
/JOB TIME/ {
programmed = sprintf("%d %s", $1, $2);
mean = sprintf("%d %s", $(NF-1), $NF);
}
/AVERAGE Turnaround/ { avg_turnaround = sprintf("%d %s", $(NF-1), $NF);}
# Assumes the line "AVERAGE Delivery" is also the end of the record.
/AVERAGE Delivery/ {
avg_delivery = sprintf("%d %s", $(NF-1), $NF);
printf("%d, '%s', '%s', '%s', '%s'\n", shift, programmed, mean, avg_turnaround, avg_delivery);
# Clear the vars for the next record.
shift = "";
programmed = "";
mean = "";
avg_turnaround = "";
avg_delivery = "";
}
輸出。 。 。
$ awk -f test.awk test.dat
1, '600 min', '599 sec', '658 sec', '210 mins'
相關問題
- 1. 如何將文本分隔文件導入到SQL數據庫?
- 2. 使用c將文本文件導入到SQL Server數據庫#
- 3. 將文本文件導入數據庫
- 4. 導入文本文件到MS Excel或SQL Server CE數據庫
- 5. 使用SQL將文本文件導入到通用數據庫中
- 6. 將.sql文件導入到沒有PHPmyAdmin的數據庫中
- 7. 如何將northwind數據庫的sql文件導入到PostgreSQL中?
- 8. 如何將BIG SQL文件導入到rails數據庫中?
- 9. 使用wamp將sql文件導入到數據庫中
- 10. 將Xlsx文件導入到sql數據庫中
- 11. 將文本文件導入到SQL Server 2008數據庫實時時間
- 12. 如何導入文本文件並將數據保存到數據庫中?
- 13. 將文本文件導入Windows 7中的Access數據庫
- 14. 將csv文件/ excel導入到sql數據庫asp.net
- 15. 將SQL文件導入到現有的數據庫表(phpmyadmin)
- 16. 如何將PHPMyAdmin SQL轉儲文件導入到MySQL數據庫?
- 17. 如何導入SQL數據庫文件
- 18. 如何將文本文件中的數據導入到Excel中?
- 19. 將SQL Server Express數據庫導出到.SDF文件(本地數據庫)
- 20. 將多個文本文件導入到mysql數據庫中的不同表中
- 21. 將數據導出到文本文件
- 22. 從txt文件導入數據到SQL數據庫
- 23. 將文本文件導入到MySql中
- 24. 將文本文件導入數據庫的最快方法
- 25. 將文本文件導入MySQL數據庫錯誤
- 26. MS Access 2003 - 將文本文件導入MS Access數據庫表
- 27. 將Amazon S3文件導入數據庫
- 28. 將sql腳本從SQL文件注入到javascript中的sqlite數據庫中
- 29. 如何從SQL文本文件將數據庫模式導入MS Access 2003?
- 30. 導入csv或文本文件到數據庫
你知道你可以使用逗號導入數據,是否有通過查看空格數量或固定長度導入數據的事情? – Blob 2012-02-27 10:52:40
是的,* I *可以導入固定寬度的數據,我相信OP可以導入固定寬度的數據。但他沒有固定寬度的數據。他有一個已被保存到文件的報告。 – 2012-02-27 11:08:22
你好,我還在爲這個而苦苦掙扎,並且研究過AWK和AWKA,但還是輸了。我只是想知道是否有任何教程或更簡單的方法從每個文本文件中提取特定的數據?謝謝 – Blob 2012-03-20 09:57:21