#1 Le 28/01/2014, à 15:02
- fabkzo
[Resolu] Créer des dossiers numérotés 2digits
Bonjour,
Je suis en train de me faire un script bash de tri de fichiers qui génère des dossiers numérotés de 0 à 99.
Mon problème est que mkdir crée ces dossiers sous la forme: 1,2,3 ....9,10,11 ...etc...
Alors que je voudrais que tous aient un nom à 2 digits c-à-d: 01, 02, 03, 04 etc...
Le nom du dossier est le résultat d'une incrémentation:
lot=$((lot+1))
if [ ! -d "$lot" ]
then
mkdir -p $lot/{$ext,$ext2}
fi
Du coup en sortie <10 je perds le 0 ...
Je suis persuadé qu'il existe un truc simple mais je ne vois pas ...
Quelqu'un pourrait-il me filer un coup de main?
Dernière modification par fabkzo (Le 28/01/2014, à 15:44)
pinterest ==> fabkzo!
Python beginner on Rpi
http://www.fabkzo.com
Hors ligne
#2 Le 28/01/2014, à 15:11
- pingouinux
Re : [Resolu] Créer des dossiers numérotés 2digits
Bonjour,
mkdir -p "$lot"/{00..99}
Je ne pense pas que l'on puisse mettre 00 et 99 dans des variables, ou alors :
for k in $(seq $ext1 $ext2); do mkdir -p "$lot"/$(printf "%02d" $k); done
Ajouté : Je ne suis pas certain d'avoir bien compris ce que tu voulais
Dernière modification par pingouinux (Le 28/01/2014, à 15:13)
Hors ligne
#3 Le 28/01/2014, à 15:19
- fabkzo
Re : [Resolu] Créer des dossiers numérotés 2digits
Merci pour ta réponse super rapide
Néanmoins c'est $lot qui doit posséder un numéro , et pas ses sous-dossiers.
J'ai finalement trouvé un truc comme ça:
if [ ! -d "$lot" ]
then
if [ $lot -gt 0 ] && [ $lot -lt 10 ]
then
lot=0$lot
fi
mkdir -p $lot/{$ext,$ext2}
fi
Mais je ne sais pas pourquoi, je trouve ça crade la redondance de if.
Du coup j'ai des dossiers de la forme: 01 , 02, 03 avec leurs sous dossiers $ext et $ext2
Dernière modification par fabkzo (Le 28/01/2014, à 15:20)
pinterest ==> fabkzo!
Python beginner on Rpi
http://www.fabkzo.com
Hors ligne
#4 Le 28/01/2014, à 15:26
- pingouinux
Re : [Resolu] Créer des dossiers numérotés 2digits
mkdir -p $(printf "%02d" "$lot")/{$ext,$ext2}
Tu peux aussi remplacer
lot=$((lot+1))
par
((lot++))
Hors ligne
#5 Le 28/01/2014, à 15:44
- fabkzo
Re : [Resolu] Créer des dossiers numérotés 2digits
ok! Je n'avais pas pensé au printf...
je te remercie pour ton aide précieuse !
A+
Dernière modification par fabkzo (Le 28/01/2014, à 15:44)
pinterest ==> fabkzo!
Python beginner on Rpi
http://www.fabkzo.com
Hors ligne
#6 Le 28/01/2014, à 17:31
- Postmortem
Re : [Resolu] Créer des dossiers numérotés 2digits
Salut,
Sinon, je pense que ceci devrait fonctionner :
mkdir -p {01..99}/{$ext,$ext2}
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#7 Le 29/01/2014, à 04:17
- nesthib
Re : [Resolu] Créer des dossiers numérotés 2digits
Je rejoins totalement Postmortem, inutile de faire différemment.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#8 Le 29/04/2014, à 17:53
- compte supprimé
Re : [Resolu] Créer des dossiers numérotés 2digits
Salut,
Sinon, je pense que ceci devrait fonctionner :mkdir -p {01..99}/{$ext,$ext2}
Merci beaucoup ,je devais créer plusieurs dossiers d'un coup, c'est chose faîtes, j'ai pu remplacer le chiffre 99 par 999 par exemple.
#9 Le 30/04/2014, à 23:46
- migrec
Re : [Resolu] Créer des dossiers numérotés 2digits
Avec seq et l'option "-w", tu as moyen de faire très simple :
michel@basket:~$ seq -w 10
01
02
03
04
05
06
07
08
09
10
Hors ligne