シェルスクリプトで大量データのcsvファイル作成!!!
はじめに
テストで大量データの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
Author And Source
この問題について(シェルスクリプトで大量データのcsvファイル作成!!!), 我々は、より多くの情報をここで見つけました https://qiita.com/o-ga/items/590921c0d85d1f624681著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .