2

巨大なテキストを生成する必要があります。

私はbashを使用していて、のような整数を のような65文字に変換したいと考えていAます。したがって、 と の間のランダムな値を使用0255(すべての ASCII テーブルが必要です)、char に変換し、 を使用してファイルにリダイレクトします>>bashしかし、整数をcharとして解釈することはできません。printf("%c", 65)C++ のように。しかし、これを bash で試すと、6 が返されます。

4

3 に答える 3

5

巨大なランダム シーケンスのバイトを生成する必要がある場合は、なぜ/dev/urandomを使用しないのでしょうか?

$ RANDOM=$( dd if=/dev/urandom bs=1024 count=1|base64 )
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.00056872 s, 1.8 MB/s
$ echo $RANDOM
r553ONKlLkU3RvMp753OxHjGDd6LiL1qSdUWJqImggHlXiZjjUuGQvbSBfjqXxlM6sSwQh29y484
KDgg/6XP31Egqwo7GCBWxbEIfABPQyy48mciljUpQLycZIeFc/bRif0aXpc3tl5Jer/W45H7VAng
[...]

base64端末を混乱させる可能性のある制御文字を避けるために、出力を にパイプしました。

$ RANDOM=$( dd if=/dev/urandom bs=1024 count=1 )

また

$ dd if=/dev/urandom of=outputfile bs=1024 count=1

1kB のランダム データを含むファイルを作成します。

于 2012-05-08T11:16:14.697 に答える
4

あなたはそれをチェーンする必要があります

printf \\$(printf '%03o' $((65)))
于 2012-05-08T17:08:21.847 に答える
2

これを試して:

ASCII 文字を 10 進数 (または 16 進数) の値に変換して元に戻すにはどうすればよいですか?

于 2012-05-08T10:57:33.793 に答える