Linux 用bash从文件中随机获取字节数?

Linux 用bash从文件中随机获取字节数?,linux,bash,random,dd,Linux,Bash,Random,Dd,我有一个256MB的文件。我想从这个文件中检索随机数量的数据,并将其复制到另一个文件中 有没有办法在bash或其他方式中实现这一点 编辑:选择一个介于1和256之间的随机数,然后将该mb数从一个文件复制到另一个文件。此复制从开始: 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=i

我有一个256MB的文件。我想从这个文件中检索随机数量的数据,并将其复制到另一个文件中

有没有办法在bash或其他方式中实现这一点


编辑:选择一个介于1和256之间的随机数,然后将该mb数从一个文件复制到另一个文件。

此复制从开始:

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=
选项从其他地方开始


(我的坏,忘记指定块大小。)

此复制从开始:

# (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=
选项从其他地方开始


(我的错,忘了指定块大小。)

如果您的操作系统具有/dev/uradom,那么选择随机数很容易:

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

如果您的操作系统具有/dev/uradom,那么选择随机数很容易:

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


你说“随机”是什么意思?你是在问如何生成一个随机数吗?还是你说的“任意”?这是家庭作业吗?没有太多真正的理由做这个…家庭作业?哈哈,不。我98年大学毕业了。好吧。当有这样一个特别的问题问我如何做一些我可能永远不会做的事情时,我总是觉得很可疑。呵呵,即使在我上大学的时候,我也会问这样一些奇怪的问题:)你说“随机”是什么意思?你是在问如何生成一个随机数吗?还是你说的“任意”?这是家庭作业吗?没有太多真正的理由做这个…家庭作业?哈哈,不。我98年大学毕业了。好吧。当有这样一个特别的问题问我如何做一些我可能从来没有做过的事情时,我总是觉得很可疑。呵呵-即使在我上大学的时候,我也问过这样一些奇怪的问题:)这是复制输入文件的全部内容。应该指出,
$RANDOM
是Bash中的一个内置自动变量,它包含范围为0-32767的伪随机数。这将复制输入文件的全部内容。应该指出,
$RANDOM
是Bash中的内置自动变量,其中包含范围为0-32767的伪随机数。Bash具有内置随机数variable@J尤尔根:很高兴知道。我使用tcsh,据我所知,它没有。Bash有一个内置的随机变量variable@J尤尔根:很高兴知道。我使用的是tcsh,据我所知,它没有。