コンソール上でLeet変換された文字列(password→P@ssw0rd)をgrepする

ちょっと前にsedとブレース展開を使ってLeet変換した文字列の一覧を羅列するという処理についてやってたのだが、ふと特定の文字列がLeet変換されている文字列をgrepする場合どうすれば良いのかなと思い調べてみたので、備忘として残しておく。
grepには-fオプション(指定されたファイルの中にある文字列からgrepする)があるので、特に難しいこともなくプロセス置換で実現できる。Leetの組合せは状況に応じて足していけばいい。

grep -i -f <(eval echo $(echo 文字列 | sed -e 's/a/{a,@}/g' -e 's/s/{s,\\\$}/g' -e 's/o/{o,0}/g') | tr ' ' '\n') /tmp/test.txt
Sponsored Links

blacknon@BS-PUB-DEVELOP:~$ head /tmp/test.txt
password
passwd
P@ssw0rd
10000
10001
10002
10003
10004
10005
10006
blacknon@BS-PUB-DEVELOP:~$ grep -i -f <(eval echo $(echo password | sed -e 's/a/{a,@}/g' -e 's/s/{s,\\\$}/g' -e 's/o/{o,0}/g') | tr ' ' '\n') /tmp/test.txt
password
P@ssw0rd
P@s$w0rd

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*