#27 Le 07/12/2023, à 13: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, à 14: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.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#30 Le 08/12/2023, à 14: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, à 17: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, à 15:48
Hors ligne
#33 Le 09/12/2023, à 16:07
- nany
Re : remplacer tous les carctères avant le .jpg
Bonjour,
je voudrai remplacer tous les [espace] du même nom de fichier par des _
J'aifor i in * *; do mv "$i" "${i/ /_}"; done
Comment faire ?
for i in *; do mv "$i" "${i// /_}"; done
${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, à 16:13)
En ligne
#34 Le 09/12/2023, à 16:12
- zool bzh
Hors ligne
#35 Le 10/12/2023, à 19: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, à 19:22)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne