以色列电话号码以 05 开头,第三位数字必须是 0、2、3、4、5 或 8。第四位及之后的数字可以是任意数字。
我写了这个命令:
crunch 10 10 0123456789 -o phone_numbers -t 05@@@@@@@@
但在我的命令中,第三个字符不受限制。我不知道如何将第三个字符限制为仅0
/ 2
/ 3
/ 4
/ 5
/ 8
。你能帮帮我吗?
答案1
这手动的有点误导。它指出:
crunch <min-len> <max-len> [<charset string>] [options]
[…]
charset string
您可以在命令行上指定 crunch 使用的字符集,或者如果您将其留空,crunch 将使用默认字符集。顺序必须是小写字符、大写字符、数字,然后是符号。[…][…]
-t @,%^
指定一种模式,例如:@@god@@@@
其中只有@
's、,
's、%
's 和^
's 会发生变化。
@
将插入小写字符,
将插入大写字符%
将插入数字^
将插入符号
重要事实:手册中提到“小写字符”、“大写字符”、“数字”和“符号”的地方,可能写成“集合 1”、“集合 2”、“集合 3”和“集合 4”。默认集合分别对应于手册中使用的术语,但除此之外,“小写字符”只是一个抽象的“集合 1”。在此上下文@
中指的是“集合 1”,并%
指的是“集合 3”。
您将第一组定义为0123456789
,这些不是小写字符,但它却有效。该工具不会检查“集合 1”或“小写字符”是否确实是小写字符。
现在您需要一个额外的集合,一个有限的集合。让我们重新定义“大写字符”(“集合 2”):
crunch 10 10 0123456789 023458 -o phone_numbers -t 05,@@@@@@@
就是这样。现在输出的第三个字符是从一个独立的集合生成的。