😊

CSVファイルを指定した行数で分割するワンライナー

に公開

MacでCSVファイルを指定した行数で分割するワンライナーです。

SPLIT_SIZE=100000 INPUT="hoge.csv"; BASE=$(basename "$INPUT" .csv); mkdir -p "$BASE"; awk -v sz="$SPLIT_SIZE" -v pref="$BASE/${BASE}_split_" 'NR==1{hdr=$0;next}{fn=sprintf("%s%03d.csv",pref,int((NR-2)/sz)+1);if(!seen[fn]++)print hdr>fn;print>>fn}' "$INPUT"

Discussion