it-swarm.com.de

Wie man mit grep nur 7 Zeichen extrahiert

Ich verwende einen regulären Ausdruck mit grep. Ich möchte genau 7-stellige Passwörter extrahieren, erhalte jedoch 7 und mehr Zeichen.

    grep '[a-zA-Z0-9]\{7\}' /usr/share/wordlists/rockyou.txt

    grep '[a-zA-Z0-9]\{7,7\}' /usr/share/wordlists/rockyou.txt
2
user7897287

Verwenden Sie erweitertes grep:

grep  -E '^[a-zA-Z0-9]{7}$' /usr/share/wordlists/rockyou.txt

oder deine eigene Version wie:

grep '^[a-zA-Z0-9]\{7\}$' /usr/share/wordlists/rockyou.txt

oder auch:

egrep '^.{7}$' /usr/share/wordlists/rockyou.txt
2
Ravexina

Jede Zeile, die mehr als 7 Zeichen enthält, enthält auch eine Teilzeichenfolge mit 7 Zeichen (die Ihrem Ausdruck entspricht).

Sie können nur vollständige Übereinstimmungen erzwingen, indem Sie verankern den Ausdruck an den Anfang und das Ende der Zeile setzen:

grep '^[a-zA-Z0-9]\{7\}$' /usr/share/wordlists/rockyou.txt

oder geben Sie die Ganzzeilenübereinstimmung mit der Option -x an

grep -x '[a-zA-Z0-9]\{7\}' /usr/share/wordlists/rockyou.txt

Aus 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 $.
0
steeldriver