Linux中的随机身份生成

在电路网格网格上的人群
Gremlin / Getty Images

如果您需要生成名称和地址列表以测试应用程序或正在进行的脚本,则Linux可以使其令人惊讶的方便。有一个名为“钻机”的命令,它将创建名称,地址和电话号码列表。据我所知,它只能与美国地址和区域代码合作。但是,如果这确实如此,你可能能够解决这个问题。

使用钻孔命令,您只能在命令行上键入“钻机”,将生成单个名称和地址。你会看到这样的东西:

$ arion mavis英语1015郁金香圣安德森,在46018(317)xxx-xxxx

若要生成包含许多地址的列表,请使用- c选项并指定要查看的地址数。

$ rig -c 3 Curt Rhodes 750 Orrand Dr Kinston, NC 28501 (919) xxx-xxxx Glenna Sheppard 531 Buncaneer Dr Seattle, WA 98109 (206) xxx-xxxx Georgina Burke 840 Plinfate St Orlando, FL 32802 (407) xxx-xxxx

您可能已经注意到,这些身份记录中的电话号码有一个区号,但电话号码只有一系列的x。在这篇文章的后面,我将演示一种可以超越这一点的方法。

如果出于某种原因,您只需要生成的列表中的男性或女性名称,您可以使用- m(男性)或- f(女性)选项。

$ rig-c 3-m $ rig -f-c 3 Eduardo Mathis alicia Lara 183肯尼犬853 Wilow Rd Appleton,Wi 54911 Roanoke,VA 24022(414)XXX-XXXX(703)XXX-XXXX Tristan Mckee Mindy Romero 608湖846 Burnet博士迈阿密博士,FL 33152 Emporia,KS 66801(305)XXX-XXXX(316)XXX-XXXX Randy Chavez Ina Morris 654 Bourg St 556 Cedarwood Ln Spokane,WA 99210 Passadena,CA 91109<==哎呀!(509)xxx-xxxx(818)xxx-xxxx

它很容易将输出重定向到文件中以保存其预期用途。

$ Rig -C 100> ID

把你的钻孔命令进入脚本可能会使它更容易使用,但它不会向命令添加太多。在这方面gen_random_ids.脚本,我们提示用户生成身份记录的数量,并将输出重定向到一个文件中。它使用bash PID来随机化文件名(例如,id .3255),以减少同名文件已经存在的可能性。

#!/ bin / bash如果[$#== 0];然后echo -n "number of records to generate> " read num else num=$1 fi rig -c $num > id。$$ echo "$num标识记录在id中。$ $文件”

你也可以转身钻孔命令进入一个简单的bash别名:

别名Genids ='Rig -C 1000> ID'

添加电话号码

如果您愿意看到电话号码代替所有这些xxx-xxxx字符串,您可以做更多的工作来实现这一目标。您可以创建随机虚拟的电话号码与您的虚构身份一起进行。在下一个脚本中,我使用一个名为的内部bash函数随机的创建所需的数字来替换xxx-xxxx字符串钻孔提供了。所示的语法旨在确保我们得到恰好有3和4位数字的数字字符串。

该脚本使用该脚本生成标识列表钻孔命令然后通过列表重新返回以替换xxx-xxxx字符串与生成的电话号码。

#!/ bin / bash如果[$#== 0];然后回显--N“要生成的ID数>”读取Num = 1 $ 1 fi如果[-f ID];然后RM IDS FI RIGR-C $ NUM> ID。$$虽然ifs = read -r线DO,如果[$ line == *“xxx-xxxx”]];然后区域代码=`echo $行|cut -c1-5` echo-n“$大区码”>> IDS echo $((100 +随机%899)) -  $((1000 +随机%8999))>> IDS ECHO“$ LINE”>> ID完成
       

在这个第二版本中gen_random_ids.脚本,钻孔输出写入id。$ $文件,并编写了修订的(最终)身份记录id文件。只删除了脚本时存在的名称的任何文件。当然,您是欢迎更改任何此行为以将脚本调整为您的首选项。

从上次脚本的输出将如下所示。请记住,电话号码完全随机,并且在所显示的城市中不太可能类似于电话号码,尽管区域代码可能正常。

$ at cat IDS Silvia Frederick 163 Shalton Dr Beloit,Wi 53511(608)776-7085米尔德里德·乔布纳116春县Blvd Albany,NY 12212(518)491-5250

去国际

钻孔命令获取它从文件中提供的信息/ usr / share / red。如果您希望它生成类似于其他国家/地区的名称和地址,则可能会替换这些文件的内容。另一方面,您的成功可能取决于地址匹配当前内容格式的程度。这钻孔司令似乎与其中有多个单词的城市名称似乎不好,如“旧金山”或“纽约”。它可能与具有多个组件的区域代码很好。

添加数据

这些数据文件钻孔Uses对某些字段有多达1,000个条目。我系统上的计数显示:

$ CD /usr/share/rig $ wc -l * 1000个fnamesIdx <== 1000个女人的名字1000个lname。Idx <== 1,000姓氏61 locdata。Idx <== 61个城市和州1000个名字。第60街的男人有1000个名字。Idx <== 1000个街名共3121个

这意味着它可以产生多达200万个不同的名字。如果你有这样的倾向,没有理由不能添加更多。只要遵循格式。

加入网络世界社区有个足球雷竞技appFacebooklinkedin.对自己最关心的话题发表评论。
有关的:

版权所有©2021.Raybet2

2021年IT薪资调查:结果是