匯出 SQL 中的資料,如果需要避免過多的指令碼,要精簡可提供給其他業務閱讀的格式,通常會使用 CSV 檔案的格式匯出,這是一種以檔案形式匯入匯出時很高效的格式,通常副檔名以「 .csv」作為檔案後綴。
但有時下載下來的 CSV 檔案格式過大,電腦記憶體不足時打不開,這時 MacOS 系統可以用命令提示字元的方式進行切割。
切割指令如下:
split [-l line_count] [-b byte_count] [-n chunk_count] [file [prefix]]
常用的指令操作範例:
split -l 100 old_file.csv new_file_
翻譯:舊檔案名稱為 old_file.csv 以每 100 行作為新檔案切割,切割檔案前綴為 new_file_ 。新檔案就會切格為 new_file_a、new_file_b ….. new_file_aa、new_file_ab … 這樣。
通常也會需要搭配把新檔案名稱後面貼上 .csv 後綴,這樣才方便交付時對方打開。可以用以下指令:
for i in $(find new_file_*); do mv $i "$i.csv"; done
其實就是 bash 指令寫在同一行,意思就是逐步調整指定的檔案前綴來添加副檔名。新檔案就會變成 new_file_a.csv、new_file_b.csv ….. new_file_aa.csv、new_file_ab.csv … 這樣。
要注意的是:
- 建議把檔案放在一個空的資料夾中操作。
- 在操作前,先計算好需要的分割新檔案大小,以及預計會產生多少檔案。太多檔案或是太大太小的分割檔案都會造成接下來的操作不易。
- 操作檔案必須確認是 csv 格式,不推薦 json 或是 sql 格式來做切割。也不推薦以 -b 參數作為操作,不確定一行(一筆資料)會包含多少字元,使用 -b 分割很容易切到同一行資料。
參考: