0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

大体1億レコードのシリアルナンバーを、大体15分で作成する方法

Last updated at Posted at 2021-12-21

注意

  • この記事にあるスクリプトのご利用は自己責任でお願いします。
  • ユニークビジョンでは、この方法でのシリアルナンバーの生成を行なっていません。ですので、ユニークビジョンが運営しているキャンペーンでは、この方法で発行したシリアルナンバーは使用しておりません。
  • 動作環境は、Ubuntu 20.04.3 LTS、 Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz、です。
  • あくまでも思いつきなので、この方法で発行されたシリアルナンバーが、推測可能なものであるかもしれません。その可能性がある場合は、教えて下さい!

スクリプト

16桁、数値のみ、1億行、重複無しの場合。

time cat /dev/random | od -tu8 -An -w8 | head -100000000 | grep '................' | sed 's/..*\(................\)$/\1/' | tee full | sort | uniq -c  | awk '$1 > 1 {print $2}' > dup

time for i in `cat dup`
do
  ed full <<END
1
g/$i/d
w
q
END
done

結果

1つめのスクリプト

real    11m50.310s
user    13m59.769s
sys     0m56.764s

2つめのスクリプト

real    0m36.378s
user    0m30.046s
sys     0m4.580s

取得できたシリアルナンバーの数

cat full | sort | uniq | wc
99999998 99999998 1699999966

無事、15分以内で、99999998レコードのシリアルナンバーができました。

良いお年を!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?