LoginSignup
13
7

More than 5 years have passed since last update.

awkで大量のテストデータを作成

Posted at

100万件越えのCSVファイルをawkコマンドだけで簡単に準備する方法を紹介します。

環境・前提

  • awkが実行できる
  • 重要なのはデータ件数
  • データの内容はこだわらない(下記程度)
    • 連番
    • パターン
    • 乱数

awkスクリプトを準備

gen.awk
BEGIN {
        srand();
        printf("f1,f2,f3,f4\n");
        for(i=1; i<=1000000; i++){
                printf("%d,固定文字%08d,%d,%d\n",
                i,
                i+9000000,
                i%3,
                substr(rand(), 3) );
        }
}

やってること

  • 100万行のデータ
  • ヘッダ行あり
  • 4列CSV
目的 用途
1 連番(1~) primary key
2 固定文字+連番(開始位置調整) 氏名など
3 パターン 性別や所属など
4 乱数 電話番号など

実行

$ awk -f gen.awk > 1000k.csv

確認

# 行数
$ wc -l 1000k.csv
1000001 1000k.csv

# 先頭3行
$ head -3 1000k.csv
f1,f2,f3,f4
1,固定文字09000001,1,576777
2,固定文字09000002,2,465325

# 最後3行
$ tail -3 1000k.csv
999998,固定文字09999998,2,29666
999999,固定文字09999999,0,412693
1000000,固定文字10000000,1,603937

簡単に速くテストデータを作成できました。
PerlやPythonで丁寧に書くまでもなく、DBもないような場合にいかがでしょうか。

13
7
0

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
13
7