LoginSignup
0
1

More than 1 year has passed since last update.

シェルスクリプトで大量データのcsvファイル作成!!!

Last updated at Posted at 2021-08-26

はじめに

テストで大量データの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

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1