如何为列表项生成唯一编号

米奇(Mikey R)

我在一个名为的文件中有一长串值,list.txt并且我想为文件文本文件中的每个项目生成一个随机的唯一数字。如果该项目出现多次,它将具有相同的唯一ID

例如,list.txt将是:

may-111
may-111
rob-222
kim-456
may-111

我希望能够为每个项目分配一个随机数。如果该项目出现不止一次,则它将具有相同的唯一ID号,因此预期输出应为:-

may-111 - 789
may-111 - 789
rob-222 - 365
kim-456 - 641
may-111 - 789

我曾尝试生成随机数的列表,并保存到一个新的文本文件,然后pastejoin新的文本文件保存到list.txt

paste -d list.txt random.txt

当前,输出不保留唯一ID,并且如果同一名称多次出现,则其具有不同的ID。

阿努巴瓦

您可以使用以下awk:

awk '!seen[$1]{seen[$1] = rand() * 1000000} {print $0 " - " seen[$1]}' file
may-111 - 840188
may-111 - 840188
rob-222 - 394383
kim-456 - 783099
may-111 - 840188
  • rand() 是生成随机数的函数,例如 0.840188
  • seen是一个关联数组,键为$1,值为随机数
  • !seen[$1] -对不在数组中的键执行此块 seen
  • seen[$1] = rand() * 1000000-用key=$1填充数组value=rand()
  • {print $0 " - " seen[$1]}-$1从数组中打印当前行并存储键的随机值

编辑:(感谢JID)可以使用此awk命令来避免数字重复:

awk '!seen[$0]{do{x=int(rand()*1000);seen[$0]=x}while(nums[x])} 
     {print $0, "-", seen[$0]}' ile
may-111 - 840
may-111 - 840
rob-222 - 394
kim-456 - 783
may-111 - 840

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何为每个地址生成唯一编号?

如何为每个列表项生成一个列表

唯一标识 ngFor 生成的列表项

如何为唯一对X,Y编号

如何为变量生成唯一的名称?

如何唯一地选择无序列表的列表项而不为每个列表项分配唯一的 id

如何在MySQL中为唯一值生成唯一编号?

如何使用javascript每次为发票编号生成唯一编号

如何给重复的唯一编号?

如何为唯一性量词生成代码

如何为2个对象生成唯一的ID

SQL:如何为主键生成唯一值

如何为每个记录火花生成唯一的ID

如何为字符串生成唯一的整数id?

Firebase:如何为密钥生成唯一的数字ID?

如何为数组生成唯一键?

如何为用户控件内的控件生成唯一的ID

如何为每个用户生成唯一的 URL 目录?

在LibreOffice Calc中生成唯一编号

jQuery生成短唯一编号

如何为异步加载的下拉列表分配唯一值

如何为每个唯一数据项创建带新编号的带编号的列Excel?

填充列表时,如何添加具有唯一编号的列表属性?

如何在 1 到 10 之间生成唯一的编号但不等于当前编号或当前值?

如何使用 Spring Boot 和 MongoDB 生成 8 位唯一编号?

如何在同时运行的 Jest 测试中生成从 postgres sql 获取的唯一编号

如何生成3个唯一的随机数(不包括特定编号)。在Dart?

我们如何在 android/Kotlin 中生成唯一编号?

如何要求 Firebase 中列表项字段的唯一值而不将该值作为键?