split large csv file
分割過大的 csv file 供使用,先使用 split
切分,再透過 sed
插入標頭。
# -l 每 3 行切分,-d 改用數字編碼分割後檔案
split -l 3 -d file.csv file.csv.part.
# 取得 header
header=$(head -n 1 file.csv)
# 移除第一份的 header
tail -n +2 file.csv.part.00 > file.csv.part.00.tmp
mv file.csv.part.00.tmp file.csv.part.00
rm file.csv.part.00.tmp
# 切割後的資料在第一行都加上 header
sed -i '1i$header' file.csv.part.*
Reference:
- How to Split Large Text File into Smaller Files in Linux
- BASH: Prepend A Text / Lines To a File
- Split large csv file and keep header in each part