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 06/12/2015, à 12:24

ar barzh paour

[Résolu] manipulation chaine de caractère

hello bonjour à tous
je ne comprends pas ce qui ne va pas dans le code suivant

#!/bin/bash

for f in XXXXXXXIMG_20150817_124906YYYYYYYYYY.jpg # (ici en réel je mets *.jpg)
do
deb=${f%%IMG-????????_??????*} #prendre le 1er champ
fin=${f##*IMG-????????_??????} #prendre le dernier champ
spc=${f#*IMG-????????_??????}  #sans premier champ
dc=${f##*IMG-????????_??????}  #dernier champ
ssdc=${f%IMG-????????_??????*} #sans dernier champ
pc=${f%%IMG-????????_??????*}  #premier champ

if [[ $f =~ IMG-????????_?????? ]]
then

((nb++)) 
echo $nb "délimitateur trouvé OOOOOOOOOOOOOOOOOOOOOO"
echo "NOM " $f
echo "DEB " ${deb}
echo "FIN " ${fin}
echo "spc " $spc
echo "dc  " $dc
echo "ssdc" $ssdc
echo "pc  " $pc
else
echo
((nb++)) 
echo $nb NON OK
echo "NOM "$f
echo "DEB "${deb}
echo "FIN "${fin}
fi
done
exit 0

le résultat

résultat
NOM  XXXXXXXIMG_20150817_124906YYYYYYYYY.jpg
DEB  XXXXXXXIMG_20150817_124906YYYYYYYYY.jpg
FIN  XXXXXXXIMG_20150817_124906YYYYYYYYY.jpg
spc  XXXXXXXIMG_20150817_124906YYYYYYYYY.jpg
dc   XXXXXXXIMG_20150817_124906YYYYYYYYY.jpg
ssdc XXXXXXXIMG_20150817_124906YYYYYYYYY.jpg
pc   XXXXXXXIMG_20150817_124906YYYYYYYYY.jpg

indique que le "modèle a bien été trouvé"
mais je m'attendais à trouver

DEB XXXXXXX
FIN YYYYYYYYYY.jpg

j'ai ajouté les autres calculs spc,dc ssdc pc qui ne me serviront pas pour info

Dernière modification par ar barzh paour (Le 06/12/2015, à 12:56)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#2 Le 06/12/2015, à 12:39

pingouinux

Re : [Résolu] manipulation chaine de caractère

Bonjour,
Petite erreur d'étourderie… smile

for f in XXXXXXXIMG_20150817_124906YYYYYYYYYY.jpg # (ici en réel je mets *.jpg)

deb=${f%%IMG-????????_??????*} #prendre le 1er champ

Hors ligne

#3 Le 06/12/2015, à 12:55

ar barzh paour

Re : [Résolu] manipulation chaine de caractère

lol lol lol lol lol lol
@ pingouinux merci oeil perçant ça marche mieux comme ça il ne faut jamais mélanger torchons et serviettes

dans mon premier script j'avais essayé avec model=IMG-????????_?????? sans succès , c'était peut-être la même erreur , je revérifierai mais plus tard ...

Dernière modification par ar barzh paour (Le 06/12/2015, à 12:56)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#4 Le 08/12/2015, à 15:15

ar barzh paour

Re : [Résolu] manipulation chaine de caractère

fonctionne très bien avec un modèle

#!/bin/bash
# BUT :
# Transformer le nom d'un fichier xxxxIMG_20150817_124906yyyyy.jpg
#           en un fichier de nom          2015-08-17:12-19-06-xxxx-yyyyy.jpg

modele="IMG_????????_??????"
for f in *.jpg # on ne s'occupe que des .jpg
do
deb=${f%%$modele*} #prendre le 1er champ
fin=${f##*$modele} #prendre le dernier champ
if [[ $f =~ $modele ]]
then
echo
((nb++)) 
echo $nb "délimitateur trouvé OOOOOOOOOOOOOOOOOOOOOO"
echo "NOM " $f        # xxxxIMG_20150817_124906yyyyy.jpg
echo "DEB " ${deb}    # xxxx
etc 

PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne