用于从大文本文件中提取哈希的脚本

时间:2012-04-23 14:05:45

标签: python perl bash sed awk

我正在尝试编写一个脚本,该脚本将从包含大约500,000行数据的文本文件中提取NTLM哈希值。并非所有帐户都包含哈希值,我只需要包含哈希值的哈希值。

以下是数据的示例:

  

Mango Chango A(a):$ NT $ 547e2494658ca345d3847c36cf1fsef8 :::

文件中有数千个其他行,但该特定行是我需要从文件中取出的。大约有100行适用于此,我不想手动浏览整个文件来搜索它。

是否有一个简单的脚本或我可以在Linux中运行的东西来从该文件中提取出该模式的行?

谢谢!

3 个答案:

答案 0 :(得分:4)

grep '\$NT\$' 文件名

如果您正在寻找的字段之外可能还有其他$ NT $,您可能会更具体 - 这将只找到在第二个以冒号分隔的字段中包含它的行:

awk -F: '$2 ~ /\$NT\$/' 文件名

答案 1 :(得分:1)

特异性的另一种变化:

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

如果需要,您可以使用范围:

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

或者更一般:

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

[:alnum:]是一个命名的字符类,包括当前语言环境中的所有字母字符,上部和下部以及所有数字字符。

其他字符类包括[:alpha:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:],{ {1}},[:space:][:upper:]

我会使用[:xdigit:],但其中包含“s”。

答案 2 :(得分:0)

在Bash和许多其他shell中:

grep ":$NT$" your_file.txt

行情将让$传入模式不受干扰。