Quiero mvtodos los archivos que comienzan con 'x' al directorio 'x'; algo como:
mv path1/x*.ext path2/x
y hazlo para todas las letras del alfabeto a, ..., z
¿Cómo puedo escribir un script bash que haga bucles 'x' a través del alfabeto?
Quiero mvtodos los archivos que comienzan con 'x' al directorio 'x'; algo como:
mv path1/x*.ext path2/x
y hazlo para todas las letras del alfabeto a, ..., z
¿Cómo puedo escribir un script bash que haga bucles 'x' a través del alfabeto?
Respuestas:
for x in {a..z}
do
echo "$x"
mkdir -p path2/${x}
mv path1/${x}*.ext path2/${x}
done
"$x"lo general, es suficiente y una mejor manera de destacarlo.
aquí se explica cómo generar el alfabeto español mediante la expansión de llaves anidadas
for l in {{a..n},ñ,{o..z}}; do echo $l ; done | nl
1 a
...
14 n
15 ñ
16 o
...
27 z
O simplemente
echo -e {{a..n},ñ,{o..z}}"\n" | nl
Si desea generar el obsoleto alfabeto español de 29 caracteres
echo -e {{a..c},ch,{d..l},ll,{m,n},ñ,{o..z}}"\n" | nl
Se podría hacer algo similar para el alfabeto francés o el alfabeto alemán.
Con mayúsculas también
for letter in {{a..z},{A..Z}}; do
echo $letter
done
Esta pregunta y las respuestas me ayudaron con mi problema, en parte.
Necesitaba lucir una parte del alfabeto en bash.
Aunque la expansión es estrictamente textual
Encontré una solución: y la hice aún más simple:
START=A
STOP=D
for letter in $(eval echo {$START..$STOP}); do
echo $letter
done
Lo que resulta en:
A
B
C
D
Espero que sea útil para alguien que busque el mismo problema que tuve que resolver y que también termine aquí