0

約 500,000 行のデータを含むテキスト ファイルから NTLM ハッシュを引き出すスクリプトを作成しようとしています。すべてのアカウントにハッシュが含まれているわけではなく、ハッシュが含まれているアカウントのみが必要です。

データがどのように見えるかのサンプルを次に示します。

マンゴー チャンゴ A (a):$NT$547e2494658ca345d3847c36cf1fsef8:::

ファイルには他にも何千もの行がありますが、その特定の行をファイルから取り出す必要があります。これに該当する行は約 100 行あり、ファイル全体を手動で検索したくありません。

ファイルからそのパターンに従う行を引き出すために Linux で実行できる簡単なスクリプトまたは何かがありますか?

ありがとうございました!

4

3 に答える 3

4

grep '\$NT\$'ファイル名

探しているフィールドの外に $NT$ が他にもある場合は、より具体的に指定できます。これにより、コロンで区切られた 2 番目のフィールドにある行のみが検索されます。

awk -F: '$2 ~ /\$NT\$/'ファイル名

于 2012-04-23T14:18:38.937 に答える
1

特異性の別のバリエーション:

grep -E ':\$NT\$[[:alnum:]]{32}:'

必要に応じて範囲を使用できます。

grep -E ':\$NT\$[[:alnum:]]{30,34}:'

またはより一般的に:

grep -E ':\$NT\$[[:alnum:]]+:'

[:alnum:]現在のロケールのすべてのアルファベット文字、大文字と小文字、およびすべての数字を含む名前付きの文字クラスです。

その他の文字クラスには、、、、、、、、、、、[:alpha:]およびが含まれます。[:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]

を使用[:xdigit:]していましたが、has には「s」が含まれています。

于 2012-04-23T17:08:13.313 に答える
0

Bash およびその他の多くのシェルの場合:

grep ":$NT$" your_file.txt

引用符は、$ を邪魔されずにパターンに渡します。

于 2012-04-23T14:10:27.280 に答える