#!/bin/bash
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了呼玛免费建站欢迎大家使用!
sort -R a.txt | head -20000
##
sort随机排序,然后取前20000,实现出来就是随机抽取20000.
使用dd命令快速生成大文件或者小文件的方法
转载请说明出处:
在程序的测试中有些场景需要大量的小文件或者几个比较大的文件,而在我们的文件系统里一时无法找到那么多或者那么大的文件,此时linux的dd命令就能快速的帮助你完成想要的文件。具体用法简单总结如下:
1.
dd命令可以轻易实现创建指定大小的文件,如
dd
if=/dev/zero
of=test
bs=1M
count=1000
在当前目录下会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源),但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘
则可以
dd
if=/dev/zero
of=test
bs=1M
count=0
seek=100000
此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存速度相当,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的。
2.
随机生成1百万个1K的文件
seq
1000000
|
xargs
-i
dd
if=/dev/zero
of={}.dat
bs=1024
count=1
在shell中有一个环境变量RANDOM,它的范围是0--32767
如果我们想要产生0-25范围内的数,如下:
$RANDOM%26
用这个环境变量对26取模,就可以得到最小是0,最大是25的数了。
如果想得到1--68范围内的数,可以这样
$RANDOM%68+1,
前面可以得到最小为0,最大为67的随机数,再加上1,很自然的就可以得到最大为1,最小为68的数了。
如果想得到6--87范围内的数。可以这样
$RANDOM%82+6,
前面可以得到最小为0,最大为81的随机数,再加上6,很自然的就可以得到最大为87,最小为6的数了。
cat /dev/random | tr -d -c '[:graph:]'|head -c 10
这样生成一个长度10的随机密码 . 一般情况下都会符合你的要求.
当然你可以再做改进, 比如
测试是否包含大写字母/小写字母/特殊符号. 如果不符合再调用上面的命令重新生成一个.