##はじめに
テストで大量データのcsvファイルを作る必要があったので調べてみた結果と、shellのforループとawkどっちが早いのって疑問に思ったのでそれらの結果をQiitaに投稿しました。
##結論
awk はやいぃぃぃぃぃーーーーーーーー!!!
###結果
|作成方法|処理時間|
|:--|--:|:--|
|シェルスクリプト|357秒|
|awk|4秒|
##検証した環境
M1 Mac Book Air
CPU : 8 コア
GPU : 7 コア
のモデルです。
##使用したコード
シェルスクリプト
test.sh
#!/bim/bash
echo "No,hoge1,hogehoge,piyo,normalID,終了日時,開始日時" >> /Users/username/Desktop/test_1M_by_shell.csv
NO="0"
HOGE1="TEST001"
HOGEHOGE="a"
PIYO="AB9999"
TIME_S="20210824180000"
TIME_F="20210824200000"
for i in `seq 1 1000000`;
do
NORMALID=$(printf "%020d",${i})
echo "\"${NO}\",\"${HOGE1}\",\"${HOGEHOGE}\",\"${PIYO}\",\"${NORMALID}\",\"${TIME_S}\",\"${TIME_F}\"" >> /Users/username/Desktop/test_1M_by_shell.csv
done
test.awk
BEGIN {
printf("No,hoge1,hogehoge,piyo,終了日時,開始日時\n");
for(i=0;i<1000000;i++){
printf("\"0\",\"TEST01\",\"a\",\"AB9999\",\"20210824180000\",\"20210824200000\"\n");
}
}
- awk 実行するコマンド
awk -f test.awk > /Users/username/Desktop/test_1M_by_awk.csv