注:這里說的大文件也不是太大,只有60多M而已(70多萬條數據),相對比較大而已。
為了減輕編輯的工作,某種情況下網站上可能用會到csv格式的文件進行數據導入,但一般網站除了有上傳文件大小限制以外,還有就是php腳本語言讀取文件到內存一些以及寫入到mysql中會超過最大范圍。因此只考慮到用分割文件來實現。(當然偷懶就沒有用到其他工具導入的方式了)
1.轉換csv文件的到對應的編碼。這個很多工具都可以做到。
2.在linux下分割文件:(表示按5000行分文件)
# split -l 5000 ../user.csv -d -a 4 user_
3.在每個小文件第一行前插入csv字段(-e表示使用正則,1i表示第一行之前,后面的-i是)# sed -e "1i 用戶號碼,用戶姓名,用戶星級,客戶經理姓名" -i *
(或者)
# sed -i "1i 用戶號碼,用戶姓名,用戶星級,客戶經理姓名" *
4.為分割后的文件批量增加擴展名
for i in *
do mv $i $i".csv"
done
5.打包分割文件,由於我需要將這些csv文件拿回來到windows環境下。
# tar czvf csv.tar.gz csv
6.完成。