从bash文件中获取一个随机数的字节?
我有一个256MB的文件。我想从该文件中检索随机数量的数据并将其复制到另一个文件。从bash文件中获取一个随机数的字节?
有没有办法以bash或其他方式做到这一点?
编辑:选择一个介于1和256之间的随机数,然后将该数量的MB从一个文件复制到另一个文件。
如果你的操作系统有一个的/ dev/urandom的,然后选择随机数很简单:
RANDNUM=`dd if=/dev/urandom bs=1 count=1 | od -t u1 | cut -f4- -d ' ' | head -1 | sed 's/ //g'`
一旦你有一个随机数,
dd if=input_file of=output_file bs=${RANDNUM}m count=1
Bash有一个内建的RANDOM变量 – 2010-05-24 18:41:28
@Jürgen:很高兴知道。我使用tcsh,据我所知,它不。 – nsayer 2010-05-24 18:58:19
cat somefile|head -c `head -c 3 /dev/random |hexdump -d|cut -f4 -d ' '|head -n1`
此副本从头开始:
# (random) blocks of one byte
dd of=output_file if=input_file ibs=1 count=$((($RANDOM % 256) + 1)M
# one block of (random) bytes
dd of=output_file if=input_file ibs=$((($RANDOM % 256) + 1)M count=1
使用skip=
选项从别的地方开始,如果你想。
(我的不好,忘了指定块的大小。)
这是复制输入文件的全部内容。 – GeoffreyF67 2010-05-24 17:03:35
需要指出的是'$ RANDOM'是Bash中的内建自动变量,它包含0-32767范围内的伪随机数。 – 2010-05-24 18:11:38
你是什么意思,当你说“随机”?你在问如何生成一个随机数?或者你的意思是“任意”? – Cascabel 2010-05-24 16:34:36
这是功课吗?有没有很多真正的原因做到这一点... – Cascabel 2010-05-24 16:45:16
作业?哈哈,不。我在98年完成了大学学业。 – GeoffreyF67 2010-05-24 16:50:54