Недавно возникла такая же проблема. Форумы Kali показывают решение на самом деле . Нажмите «Назад», затем «Да» (чтобы пропустить шаг настройки диспетчера пакетов), а затем, после входа в систему, просто обновите через терминал.
Используйте printf
для форматирования чисел:
for i in $( seq 1 242 ) ; do
printf '%05d\n' $( bc <<< 'obase=3; '$i )
done | sed 's/\(.\)/\1 /g'
Кроме того, не нужно помещать пустую строку после $i
и не нужно определять количество {1}
в регулярном выражении.
Возможно, быстрее использовать раскрытие скобок в zsh, ksh93, bash или yash -o braceexpand
:
printf '%s\n' {0..2}\ {0..2}\ {0..2}\ {0..2}\ {0..2}
Цикл на самом деле не нужен, поэтому я бы сделал это так:
( echo "obase=3"; seq 1 242 ) |
bc |
sed -e 's!^!00000!' -e 's!^0*\(.....\)$!\1!' -e 's!.!& !g'
Это добавляет пять нулей в левую часть , а затем возьмите крайние правые пять цифр, отделяя каждую цифру от следующей пробелом.
С zsh
или ksh93
вы также можете сделать:
typeset -i3 i
for ((i = 1; i <= 242; i++)) { printf '%05d\n' "${i#*#}"; }
С ksh93
:
printf '%05..3d\n' {1..242}
С zsh
:
for ((i = 0; i <= 242; i++)) printf '%05d\n' $(([##3]i))
Направьте их все в sed 's/./& /;s/ $//'
(или sed 's/./ &/2g'
с помощью GNU sed
), чтобы вставить пробелы между цифрами. Или с помощью zsh
:
for ((i = 0; i <= 242; i++)) print ${(s::)${(l:5::0:)$(([##3]i))}}