1行だけを使用して特定の長さのランダムファイルを作成する

1行だけを使用して特定の長さのランダムファイルを作成する

ファイル(任意のコンテンツ)を作成したいのですが、その中には1MBの大きな行が1つしかありません。

このコマンドを試しましたが、うまくいきません。

head -n 1 -c 1m /dev/urandom > /sdcard/file.txt 

正しいことは何ですか?
私は、任意の1MBのデータを1行に含むファイルが欲しい。

ベストアンサー1

{ tr -d '\n' </dev/urandom | head -c 1m; printf '\n'; } >/sdcard/file.txt

GNUを想定すると、head改行文字なしで1MBの(ほとんどバイナリ、印刷不可能)データが必要になり、/dev/urandom最後に改行が追加されます。出力はに保存されます/sdcard/file.txt。この「行」はnullバイトを含む可能性が高いため、正しいテキスト行ではありません。

英数字データのみを希望する場合

{ tr -dc '[:alnum:]' </dev/urandom | head -c 1m; printf '\n'; } >/sdcard/file.txt

これにより、任意のストリームから英数字以外のすべての文字が削除され、/dev/urandom1MBに切り捨てられ、以前のように改行文字が追加されます。

おすすめ記事