[20231201]乱序输出.txt
  qgya4x0epush 2023年12月13日 99 0
[20231201]乱序输出.txt

--//测试需要生成seq -f "%06g" 300000的乱序输出,当时不知道bash shell如何实现,先通过oracle的sql语句建立乱序数字输出。

set pagesize 0
spool aa.txt
select lpad(level,6,'0') from dual connect by level <=3e5 order by dbms_random.value;
spool off
--//注意设置set pagesize 0,不然中间出现多次页头。注意保持aa.txt的备份,测试要重复多次。

--//有时间看了一些bash shell文档.

$ seq -f "%06g" 5 | xargs -IQ echo Q $RANDOM
000001 395
000002 395
000003 395
000004 395
000005 395

--//这样不行.找到一个链接https://www.cnblogs.com/cnhack/articles/17164650.html
--//使用awk,测试看看.

$ seq -f "%06g" 5 | awk '{print $1,rand()*1000000}' | sort -k2
000003 306394
000004 578941
000002 593909
000005 740133
000001 924046

$ seq -f "%06g" 5 | awk '{print $1,rand()*1000000}' | sort -k2
000003 306394
000004 578941
000002 593909
000005 740133
000001 924046

--//视乎awk的rand()伪随机,2次执行的结果一样的.加入srand()看看.

$ seq -f "%06g" 5 | awk 'BEGIN{srand()} {print $1,rand()*1000000}' | sort -k2
000002 614333
000003 75798.2
000001 763180
000005 791454
000004 826102
--//重复两次结果不一样.

$ seq -f "%06g" 5 | awk 'BEGIN{srand()} {print $1,rand()*1000000}' | sort -k2|awk '{print $1}'
000005
000001
000002
000004
000003

--//基本满足要求.不知道生成是否缓慢,因为如果执行seq -f "%06g" 300000,要调用rand() 3e5次呢?上班测试看看.

$ time seq -f "%06g" 300000 | awk 'BEGIN{srand()} {print $1,rand()*1000000}' | sort -k2|awk '{print $1}' > bb.txt
real    0m1.858s
user    0m2.081s
sys     0m0.055s

$ head bb.txt ;tail bb.txt
245798
253547
034048
204117
136765
206247
231163
134263
214472
152697
104588
167604
023122
013733
161220
155133
284947
259982
057430
096936
--//OK,满足需求。
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月13日 0

暂无评论

推荐阅读
  kZLEadpmxZsY   2024年05月17日   30   0   0 Linux
  kZLEadpmxZsY   2024年05月17日   43   0   0 Linux
  4hf9DKAg5W6h   2024年05月17日   38   0   0 Linux
  2xk0JyO908yA   2024年05月17日   59   0   0 Linux
  tAaiqedz71Vf   2024年05月17日   52   0   0 Linux
  2sqDzWaoi9Ck   2024年05月17日   48   0   0 Linux
LVM
  XWcNkifzer3j   2024年05月20日   43   0   0 Linux
qgya4x0epush