我正在尝试编写一个脚本,该脚本将从包含大约500,000行数据的文本文件中提取NTLM哈希值。并非所有帐户都包含哈希值,我只需要包含哈希值的哈希值。
以下是数据的示例:
Mango Chango A(a):$ NT $ 547e2494658ca345d3847c36cf1fsef8 :::
文件中有数千个其他行,但该特定行是我需要从文件中取出的。大约有100行适用于此,我不想手动浏览整个文件来搜索它。
是否有一个简单的脚本或我可以在Linux中运行的东西来从该文件中提取出该模式的行?
谢谢!
答案 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
行情将让$传入模式不受干扰。