Skip to content

Instantly share code, notes, and snippets.

@greymd
Last active November 4, 2015 17:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greymd/84ba9faf1ee8af09038f to your computer and use it in GitHub Desktop.
Save greymd/84ba9faf1ee8af09038f to your computer and use it in GitHub Desktop.
チェックデジットが正しい正規のマイナンバーをランダムに生成するシェル芸
paste <(cat /dev/urandom | gtr -dc '0-9' | fold -w 1 | head -n 11) <(echo 2 3 4 5 6 7 2 3 4 5 6 | rev | tr ' ' '\n') | \
awk '{n=n"\n"$1; s+=$1*$2} END {c=(s%11); if(c<=1){print 0}else{print 11-c} print n}' | awk NF | xargs
@greymd
Copy link
Author

greymd commented Nov 4, 2015

$ paste <(echo 23456789013 | gtr -dc '0-9' | fold -w 1 | head -n 11) <(echo 2 3 4 5 6 7 2 3 4 5 6 | rev | tr ' ' '\n') | awk '{n=n"\n"$1; s+=$1*$2} END {c=(s%11); if(c<=1){print 0}else{print 11-c} print n}' | awk NF | xargs
# > 0 2 3 4 5 6 7 8 9 0 1 3
paste <(echo 12345678901 | gtr -dc '0-9' | fold -w 1 | head -n 11) <(echo 2 3 4 5 6 7 2 3 4 5 6 | rev | tr ' ' '\n') | awk '{n=n"\n"$1; s+=$1*$2} END {c=(s%11); if(c<=1){print 0}else{print 11-c} print n}' | awk NF | xargs
# > 8 1 2 3 4 5 6 7 8 9 0 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment