0

256MBのファイルがあります。このファイルからランダムな量のデータを取得し、別のファイルにコピーしたいと考えています。

これをbashまたは他の方法で行う方法はありますか?

編集: 1 から 256 までの乱数を選択し、その数の mb をあるファイルから別のファイルにコピーします。

4

3 に答える 3

4

これは最初からコピーします:

# (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=必要に応じて、別の場所から開始するオプションを使用してください。

(悪いことに、ブロックサイズを指定するのを忘れていました。)

于 2010-05-24T16:44:48.570 に答える
1

OSに/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
于 2010-05-24T17:03:52.480 に答える
1
cat somefile|head -c `head -c 3 /dev/random |hexdump -d|cut -f4 -d ' '|head -n1`
于 2010-05-24T16:40:40.437 に答える