Если вам нужны кодировки UTF-8 кодовых точек от 0 до 0x7FFFFFFF (для которых изначально был разработан алгоритм кодирования UTF-8):
< /dev/urandom perl -CO -ne '
BEGIN{$/=\4}
no warnings "utf8";
print chr(unpack("L>",$_) & 0x7fffffff)'
В настоящее время Unicode ограничен значениями 0..D7FF, E000..10FFFF (хотя некоторые из этих символов не назначены, некоторые из них никогда не будут назначены (определены как несимволы)).
< /dev/urandom perl -CO -ne '
BEGIN{$/=\3}
no warnings "utf8";
$c = unpack("L>","\0$_") * 0x10f800 >> 24;
$c += 0x800 if $c >= 0xd800;
print chr($c)'
Если вы хотите, чтобы были присвоены символы, вы можете передать их по конвейеру в:
uconv -x '[:unassigned:]>;'
Или измените это на:
< /dev/urandom perl -CO -ne '
BEGIN{$/=\3}
no warnings "utf8";
$c = unpack("L>","\0$_") * 0x10f800 >> 24;
$c += 0x800 if $c >= 0xd800;
$c = chr $c;
print $c if $c =~ /\P{unassigned}/'
Вы можете предпочесть:
if $c =~ /[\p{Space}\p{Graph}]/ && $c !~ /\p{Co}/
Чтобы получить только графические символы и символы с интервалом (исключить те из разделов личного пользования).
Теперь, чтобы получить 1 ГБ из этого, вы можете передать его по конвейеру head -c1G
(при условии, что GNU head
), но будьте осторожны, последний символ может быть разрезан посередине.
Файл ~/.asoundrc
содержит определения для пользователя.
Файл /etc/asound.conf
содержит определения для всех пользователей.