[Linux-31] tri par nom

jdanield jdanield at free.fr
Mer 7 Jan 19:04:28 CET 2015


Le 07/01/2015 18:16, jpcas a écrit :

> $ for i in *.*;do rep="${i::1}" && mkdir -vp "${rep^}" && mv -v "${i}" "${rep^}"/"${i}";done

oui...

c'est passionnant, le bash, quand on a du temps à perdre :-)

for i in *.*, je comprends, sauf que pourquoi *.* et pas * ?

d'ailleurs je crois que

for i ;

fait la même chose. il y a sûrement des finesses que je ne connais pas :-(

i::1

m'a donné du fil à retordre (pas facile à chercher sure le web)

http://wiki.bash-hackers.org/syntax/pe#substring_expansion

en fait : (colon, en anglais), est un opérateur de sous-chaine

chaine:debut:nombre

là il faut lire: chaine-i:0:1 donc 1 caractère à partir du début de la 
chaine i. Ouf!

le ^ après rep, c'est pour tout mettre en majuscules, bonne idée.

et ca marche nickel,

merci!
jdd



Plus d'informations sur la liste de diffusion Linux-31