Script shell test expression reguliere
Résolu
apprentiDev
Messages postés
171
Statut
Membre
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,
Je suis en train de faire un petit script qui doit me permettre de ne traiter que des fichiers respectant une syntaxe bien précise. Pour les fichiers qui ne respectent pas cette syntaxe je ne veux pas les traiter.
J'ai réussi à faire l'expression régulière mais je bloque pour la condition. Je ne comprends pas comment dire si le nom fichier correspond à l'expression régulière alors instruction 1 sinon erreur
Mon code est le suivant :
J'ai essayé
mais sans sucées.
Je vous remercia d'avance pour vos réponses.
Je suis en train de faire un petit script qui doit me permettre de ne traiter que des fichiers respectant une syntaxe bien précise. Pour les fichiers qui ne respectent pas cette syntaxe je ne veux pas les traiter.
J'ai réussi à faire l'expression régulière mais je bloque pour la condition. Je ne comprends pas comment dire si le nom fichier correspond à l'expression régulière alors instruction 1 sinon erreur
Mon code est le suivant :
REGEXP="[[:alpha:]]{2}[[:digit:]]+\.[jpg]"
cd monRep
# Renommage des fichiers
for photo in 'ls *.jpg'
do
trouve="$photo" | egrep "$REGEXP" //je renvoie le nom de la photo a egrep qui l'analyse avec l'expression régulière
if [ $? -eq 0 ]; then // c'est ici que je bloque je voudrais dire SI $photo correspond à la syntaxe de $REGEXP
else
"erreur"
fi
J'ai essayé
if [ ${photo} = ${REGEXP} ]; then
mais sans sucées.
Je vous remercia d'avance pour vos réponses.
A voir également:
- Script shell test expression reguliere
- Test performance pc - Guide
- Test steam deck oled - Guide
- Classic shell - Télécharger - Personnalisation
- Test disque dur - Télécharger - Informations & Diagnostic
- Test composant pc - Guide
2 réponses
Salut,
En gras les modifs :
;-))
En gras les modifs :
REGEXP="^[[:alpha:]]{2}[[:digit:]]+\.jpg"
cd monRep
# Renommage des fichiers
for photo in *.jpg
do
egrep "$REGEXP" <<<"${photo}"
if [ $? -eq 0 ]; then
...
else
"erreur"
fi
;-))
Merci de ta réponse zipe31.
Cependant j'ai essayé ta méthode et ça ne fonctionnais pas.
Par contre en faisant
ça fonctionne !
Cependant j'ai essayé ta méthode et ça ne fonctionnais pas.
Par contre en faisant
if [ ""'echo $photo | egrep $REGEXP' = "$photo" ]; then
ça fonctionne !
Bizarre ;-((
;-)
$ ls -1
123abc.jog
33ml.jpg
ab123.jpg
abc1.jpg
foo.sh
lk2568.jpg
mp2.png
$ cat foo.sh
#! /bin/bash
REGEXP="^[[:alpha:]]{2}[[:digit:]]+\.jpg"
for photo in *.jpg
do
egrep "$REGEXP" <<<"${photo}"
if [ $? -eq 0 ]; then
echo "${photo} est bonne"
else
echo "${photo} n'est pas bonne"
fi
done
$ ./foo.sh
33ml.jpg n'est pas bonne
ab123.jpg
ab123.jpg est bonne
abc1.jpg n'est pas bonne
lk2568.jpg
lk2568.jpg est bonne
;-)