grep -n [pattern] [file]
私のファイルの行番号と出力を返す必要があります。
ただし、grep -n [my pw] /usr/share/wordlists/weakpass_3
ただの返品
grep: /usr/share/wordlists/weakpass_3: binary file matches
ファイルが存在し、ユーザーが読むことができ、パスワードは単語リストにあります。
file /usr/share/wordlists/weakpass_3
返品
/usr/share/wordlists/weakpass_3: data
grep出力をファイルラインの行番号にする方法は?
答え1
あなたgrep
(おそらくGNU grep
)は、ファイルがテキストではない可能性があることを検出し、一致する行を印刷しません。ごみの可能性があるものを印刷しないように、一致があったことをお知らせします。
これをバイパスして印刷するには、この-a
オプション(GNU拡張)を追加するだけです。
また、grep
デフォルトで正規表現(re
in)と一致する場合は、部分文字列を見つける必要がgrep
あります。-F
さらに、コマンドを実行するためのパラメータはシステムの常識なので、シェルの組み込みパラメータでない限り、パスワードや機密データをパラメータgrep
に渡すべきではありません(組み込み機能を備えたシェルはほとんどありません)。 。grep
grep
したがって、printf
組み込みシェルがあるとします(今日のほとんどの場合)。
printf '%s\n' "$password" | grep -anFf - /usr/share/wordlists/weakpass_3
どこ:
-a
: バイナリの経験的検査バイパス-F
:F
正規表現一致ではなく文字列検索を修正しました。-f -
:標準入力から検索する文字列のリスト(1行に1つ)を取得します。-n
:報告行番号