Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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

Postmortem a écrit :

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