Tengo subcarpetas llamadas 00 01 02, ... n y cada nombre de carpeta contiene al menos 2 dígitos. Necesito acceder a estas subcarpetas en la terminal os-x. El comando
for i in $(seq -w 00 06); do
echo $i;
done
produce una salida de 0 1 2 3 4 5 6
. Sin embargo, el código anterior en RHEL producirá un resultado de 00 01 02 03 04 05 06
. ¿Cómo puedo hacer que el terminal mac produzca una salida de al menos 2 dígitos similar a RHEL?
Respuesta1
No tengo un sistema operativo OS para probarlo, pero quizás esta alternativa funcione:
seq -f '%02.0f' 0 6
Respuesta2
OS/X viene con zsh
, por lo que puede escribir su script en zsh
su lugar (tenga en cuenta que ya estaba usando zsh
la sintaxis (ya que $i
no se citó la que invoca el operador split+glob en bash
):
for x in {00..06}; do
echo $x
done
Posixly, siempre puedes hacer:
x=0; while [ "$x" -le 6 ]; do
printf '%02d\n' "$x"
x=$((x + 1))
done
O
seq() (first=$1 last=$2 width=${3:-0} step=${4:-1}
awk "BEGIN{for (i = $first; i <= $last; i += $step)
printf \"%0${width}d\n\", i}"
)
unset -v IFS # make sure we get the default separator
# for the split+glob invocation below
for i in $(seq 0 6 2); do
echo "$i"
done