Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save papiron/e9459920e284a47f50620bd5986b4de4 to your computer and use it in GitHub Desktop.
Save papiron/e9459920e284a47f50620bd5986b4de4 to your computer and use it in GitHub Desktop.
元ネタはこちら。
真・マイナンバーシェル芸
http://papiro.hatenablog.jp/entry/2016/04/09/005547
チェックデジットに適合したマイナンバーをひたすら列挙するだけの誰得シェルスクリプト。
高負荷がかかり危険なので、念のため下記の止め方を必ず確認しておくべし。
GNU seqコマンドとmawkコマンドを利用。バックグラウンド10並列で処理。
マシンに高負荷がかかり危険なので、念のため1億行を出力した時点で強制終了させている。
処理速度は私が使ってるMacbook Air(物理2コア論理4コア)で1分30秒程度。
MacなのでGNU seqがgseqになっているが、Linuxの人ならseqで。
mawkじゃなくてもいいけど、GNU awkだと処理速度は半減。
****************************** mynumber_parallel.bash *******************************
#!/bin/bash
time {
gseq -w 0 09999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 10000000000 19999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 20000000000 29999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 30000000000 39999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 40000000000 49999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 50000000000 59999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 60000000000 69999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 70000000000 79999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 80000000000 89999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
gseq 90000000000 99999999999 | mawk '{c=($1*6+$2*5+$3*4+$4*3+$5*2+$6*7+$7*6+$8*5+$9*4+$10*3+$11*2)%11;d=c<=1?0:(11-c);print $0 d}' FS= &
wait
} | head -n 100000000 > /dev/null
************************************************************************************
万一暴走しちゃった時はこれで停止!止められないと死ぬ・・・
************************ kill.sh ***********************
#!/bin/sh
ps a | grep mawk | grep -v grep | self 1 | xargs kill
********************************************************
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment