grep
で正規表現を使用しています。正確に7文字のパスワードを抽出したいのですが、結果として7文字と7文字以上を取得しています。
grep '[a-zA-Z0-9]\{7\}' /usr/share/wordlists/rockyou.txt
grep '[a-zA-Z0-9]\{7,7\}' /usr/share/wordlists/rockyou.txt
拡張grepを使用します。
grep -E '^[a-zA-Z0-9]{7}$' /usr/share/wordlists/rockyou.txt
または次のような独自のバージョン:
grep '^[a-zA-Z0-9]\{7\}$' /usr/share/wordlists/rockyou.txt
あるいは:
egrep '^.{7}$' /usr/share/wordlists/rockyou.txt
7文字を超える行には、7文字のサブストリングも含まれます(これは式に一致します)。
anchoringを行の先頭と末尾に表現することで、完全一致のみを強制できます。
grep '^[a-zA-Z0-9]\{7\}$' /usr/share/wordlists/rockyou.txt
または-x
オプションを使用して行全体の一致を指定する
grep -x '[a-zA-Z0-9]\{7\}' /usr/share/wordlists/rockyou.txt
man grep
から:
-x, --line-regexp
Select only those matches that exactly match the whole line.
For a regular expression pattern, this is like parenthesizing
the pattern and then surrounding it with ^ and $.