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.

#26 Le 07/12/2023, à 14:44

zool bzh

Re : remplacer tous les carctères avant le .jpg

excuses moi roll
Voila mon code

for f in *.jpg;do printf -v num "pic%03d.jpg" $((++n)); rename  "s/.*.jpg/$num/" $f; done

qui donne pic001, pic002 etc ...
comment faire pour avoir pic0001 etc


Free Party is not a crime

Hors ligne

#27 Le 07/12/2023, à 14:50

pingouinux

Re : remplacer tous les carctères avant le .jpg

@zool_bzh #26
Il faut remplacer "pic%03d.jpg" par "pic%04d.jpg", et réinitialiser n à zéro.

Hors ligne

#28 Le 07/12/2023, à 15:16

jplemoine

Re : remplacer tous les carctères avant le .jpg

Tu peux tenter :

num=0;for f in *.jpg;do printf -v num "pic%04d.jpg" $((++n)); rename -n "s/.*.jpg/$num/" $f; done

Mais je ne comprends pas bien le ++n. J'aurais mis num et no pas n.
Ce qui donne :

num=0;for f in *.jpg;do printf -v num "pic%04d.jpg" $((++num)); rename -n "s/.*.jpg/$num/" $f; done

-->Je ne peux pas tester : y aurait-il une âme charitable qui puisse tester (et éventuellement corriger s'il y a lieu) ? Merci.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#29 Le 07/12/2023, à 16:44

zool bzh

Re : remplacer tous les carctères avant le .jpg

Pour ma part c'est mieux sans le num, plutôt avec ((++n)) car ça me met erreur de symbole .jpg
merci jplemoine !


Free Party is not a crime

Hors ligne

#30 Le 08/12/2023, à 15:51

geole

Re : remplacer tous les carctères avant le .jpg

Bonjour
Si le problème n est pas traité, essaie en commandes de base

num=1;for f in *.jpg;do  mv -v "$f" pic$(printf %04d $num).jpg ;num=$(($num+1)) ; done

Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#31 Le 08/12/2023, à 18:23

Watael

Re : remplacer tous les carctères avant le .jpg

dans l'expression passée à rename, ne faudrait-il pas protéger le point devant jpg, pour qu'il soit  interprété en tant que point ?
mais peu importe, car, comme je l'ai déjà dit, dans une boucle shell, rename n'a pas d'utilité.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#32 Le 09/12/2023, à 16:48

zool bzh

Re : remplacer tous les carctères avant le .jpg

C'est encore moi
je voudrai remplacer tous les [espace] du même nom de fichier par des _ 
J'ai

for i in * *; do mv "$i" "${i/ /_}"; done

Comment faire ?

Dernière modification par zool bzh (Le 09/12/2023, à 16:50)


Free Party is not a crime

Hors ligne

#33 Le 09/12/2023, à 17:07

nany

Re : remplacer tous les carctères avant le .jpg

Bonjour,



zool bzh a écrit :

je voudrai remplacer tous les [espace] du même nom de fichier par des _ 
J'ai

for i in * *; do mv "$i" "${i/ /_}"; done

Comment faire ?

for i in *; do mv "$i" "${i// /_}"; done
man bash a écrit :
       ${parameter/pattern/string}
              Pattern  substitution.   The  pattern is expanded to produce a pattern just as in pathname expansion, Parameter is expanded and the longest match of pattern against its value is replaced with
              string.  The match is performed using the rules described under Pattern Matching below.  If pattern begins with /, all matches of pattern are replaced with string.  Normally  only  the  first
              match  is  replaced.  If pattern begins with #, it must match at the beginning of the expanded value of parameter.  If pattern begins with %, it must match at the end of the expanded value of
              parameter.  If string is null, matches of pattern are deleted and the / following pattern may be omitted.  If the nocasematch shell option is enabled, the match is performed without regard to
              the  case of alphabetic characters.  If parameter is @ or *, the substitution operation is applied to each positional parameter in turn, and the expansion is the resultant list.  If parameter
              is an array variable subscripted with @ or *, the substitution operation is applied to each member of the array in turn, and the expansion is the resultant list.

Dernière modification par nany (Le 09/12/2023, à 17:13)

Hors ligne

#34 Le 09/12/2023, à 17:12

zool bzh

Re : remplacer tous les carctères avant le .jpg

salut et merci
Et si je voudrais remplacer les  .jPg .jpeg etc ... par .jpg dans tout mon dossier avec un seule commande ?
Sur quelle base puis-je faire ma boucle for ?

Dernière modification par zool bzh (Le 09/12/2023, à 17:36)


Free Party is not a crime

Hors ligne

#35 Le 10/12/2023, à 20:21

Hizoka

Re : remplacer tous les carctères avant le .jpg

for i in *
do
 ext="${i##*.}"
 echo mv "$i" "${i%.*}.${ext,,}"
done

Si ça te va, vire le echo

Dernière modification par Hizoka (Le 10/12/2023, à 20:22)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#36 Le 14/12/2023, à 15:48

zool bzh

Re : remplacer tous les carctères avant le .jpg

Merci Hizoka & nany


Free Party is not a crime

Hors ligne