#1 Le 14/05/2024, à 11:47
- Neelix
[Résolu] Exclure tous les fichiers portant une extension particulère
Bonjour,
J'ai amélioré le script pour lequel nany m'a dépanné dans mon précédent post.
J'aimerai maintenant pouvoir exclure du traitement tous les fichiers "nomDeLaRom.p2k.cfg" crées automatiquement par Batocera. Jusque là, j'étais parvenu à exclure les fichiers filelist et _info de fichier de sortie. Comment puis-je faire de même avec les fichiers en question.
Voici mon nouveau script :
#!/bin/bash
location="$PWD"
logFile="$(basename $location)"
if test -f "$logFile" ; then #On vérifie si le fichier de sortie existe
rm "$logFile" #Si le fichier existe, on le supprime
fi
declare -a imgType=( bezel fanart image marquee thumb ) #On crée un tableau contenant les différents types d'images
echo -e "[IMAGES] \n" >> $logFile #On insère une section dans le fichier de sortie
for romFile in *.* ; do #On extrait les fichiers du répertoire de ROMS
if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt -o "$romFile" = "$cfgName" -o "$romFile" = "*.cfg" ] ; then #On exclut les fichiers gamelist, et tous les
continue #fichiers cfg présents dans le répertoire de roms
else
romName=${romFile%.*} #On supprime l'extension du fichier de ROM
for type in "${imgType[@]}" ; do #On passe en revue les types d'images
for imgFile in ./images/"${romName}"-"$type".* ; do #On extrait les fichers d'images du répertoire d'images
if test ! -f "$imgFile" ; then #On vérifie que chaque fichier correpondant à la ROM existe
echo "$romFile" - "${type^^}" >> "$logFile" #Si un fichier image manque, on le consigne dans le fichier de sortiex
fi
done
done
fi
done
#On reprends les mêmes actions que précédement pour les manuels des jeux
echo -e "\n" >> $logFile
echo -e "[MANUALS] \n" >> $logFile
for romFile in *.* ; do
if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt ] ; then
continue
else
romName=${romFile%.*}
for manFile in ./manuals/"$romName"-* ; do
if test ! -f "$manFile" ; then
echo "$romName" >> "$logFile"
fi
done
fi
done
#if [ ! -d "~/Téléchargements/logs" ] ; then
mkdir -p ~/Téléchargements/logs
#fi
mv "$logFile" ~/Téléchargements/logs
Dernière modification par Neelix (Le 15/05/2024, à 07:21)
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#2 Le 14/05/2024, à 12:52
- iznobe
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Bonjour , si tu ne veux pas " traiter " un type de fichier , tu traites le fichier pour l' envoyer nulle part .
pas lu le script mais , si tu fais par exemple
" if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt -o "$romFile" = "$cfgName" -o "$romFile" = "*.cfg" ] ; then #On exclut les fichiers gamelist, et tous les "
"$romFile" = "*.p2k.cfg"
?
PS : Si tu fais plusieurs fois le meme traitement avec des parametres differents , cela s' appelle ( et pourrait devenir ) une fonction .
#On reprends les mêmes actions que précédement pour les manuels des jeux
Dernière modification par iznobe (Le 14/05/2024, à 12:58)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#3 Le 14/05/2024, à 14:03
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
J'avais déjà essayé, ça :
"$romFile" = "*.p2k.cfg"
Mais les fichiers "p2k.cfg" apparaissent toujours dans le fichier de sortie.
PS : Si tu fais plusieurs fois le meme traitement avec des parametres differents , cela s' appelle ( et pourrait devenir ) une fonction .
Effectivement, le problème, c'est que je ne suis encore pas trop copain avec les fonctions.
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#4 Le 14/05/2024, à 15:09
- Watael
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
#!/bin/bash
shopt -s extglob
#...
for f in *!(.p2k.cfg|autres extensions) #motifs séparés par une barre verticale
do
#...
done
Dernière modification par Watael (Le 14/05/2024, à 15:11)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 14/05/2024, à 16:22
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Ca ne fonctionne toujours pas. Les fichiers cfg sont toujours présents.
for romFile in *!(.p2k.cfg) ; do #On extrait les fichiers du répertoire de ROMS
if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt ] ; then #On exclut les fichiers gamelist, et tous les
continue #fichiers cfg présents dans le répertoire de roms
else
romName=${romFile%.*} #On supprime l'extension du fichier de ROM
for type in "${imgType[@]}" ; do #On passe en revue les types d'images
for imgFile in ./images/"${romName}"-"$type".* ; do #On extrait les fichers d'images du répertoire d'images
if test ! -f "$imgFile" ; then #On vérifie que chaque fichier correpondant à la ROM existe
echo "$romFile" - "${type^^}" >> "$logFile" #Si un fichier image manque, on le consigne dans le fichier de sortiex
fi
done
done
fi
done
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#6 Le 14/05/2024, à 16:26
- iznobe
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
c' est toi qui a écrit ce code ?
essaie avec un truc du style :
for romFile in *!(.p2k.cfg | gamelist.xml | _info.txt | .cfg # etc ... )
if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt ] ; then #On exclut les fichiers gamelist, et tous les
continue #fichiers cfg présents dans le répertoire de roms
else
.......
fi
Dans la mesure du possible , il faut eviter de faire des boucles dans des boucles aussi .
watael aussi indiqué en haut de sa partie de script :
shopt -s extglob
c' est certainement pas pour rien .
Dernière modification par iznobe (Le 14/05/2024, à 16:32)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#7 Le 14/05/2024, à 16:32
- Watael
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Ca ne fonctionne toujours pas.
as-tu bien positionné le shopt ?
+1 iznobe. j'allais parler du if.
Dernière modification par Watael (Le 14/05/2024, à 16:35)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#8 Le 14/05/2024, à 16:59
- iznobe
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
de plus , logiquement , si tu exclus les fichiers " *.cfg " , ca devrait automatiquement exclure avec les fichiers *.p2k.cfg , vu qu ' ils se terminent tous 2 par " .cfg " .
tu devrais donc avoir :
for romFile in *!(.cfg | gamelist.xml | _info.txt | # etc ... ) tout ce que tu veux exclure dans cette ligne
plutot que :
for romFile in *!(.p2k.cfg | .cfg | gamelist.xml | _info.txt | # etc ... )
Dernière modification par iznobe (Le 14/05/2024, à 17:03)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#9 Le 14/05/2024, à 18:11
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
c' est toi qui a écrit ce code ?
Oui c'est moi. Nani m'a donné un coup de main, mais le code est de moi.
J'ai également ajouté
shopt -s extglob
et supprimé la conditionnelle.
Maintenant, les fichier gamelist et _info apparaissent à nouveau dans le fichier de sortie.
Voici la dernière version :
#!/bin/bash
shopt -s extglob
location="$PWD"
logFile="$(basename $location)"
if test -f "$logFile" ; then #On vérifie si le fichier de sortie existe
rm "$logFile" #Si le fichier existe, on le supprime
fi
declare -a imgType=( bezel fanart image marquee thumb ) #On crée un tableau contenant les différents types d'images
echo -e "[IMAGES] \n" >> $logFile #On insère une section dans le fichier de sortie
for romFile in *!(.cfg|gamelist.xml|_info.txt) ; do #On extrait les fichiers du répertoire de ROMS
romName=${romFile%.*} #On supprime l'extension du fichier de ROM
for type in "${imgType[@]}" ; do #On passe en revue les types d'images
for imgFile in ./images/"${romName}"-"$type".* ; do #On extrait les fichers d'images du répertoire d'images
if test ! -f "$imgFile" ; then #On vérifie que chaque fichier correpondant à la ROM existe
echo "$romFile" - "${type^^}" >> "$logFile" #Si un fichier image manque, on le consigne dans le fichier de sortiex
fi
done
done
done
#On reprends les mêmes actions que précédement pour les manuels des jeux
echo -e "\n" >> $logFile
echo -e "[MANUALS] \n" >> $logFile
for romFile in *.* ; do
if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt ] ; then
continue
else
romName=${romFile%.*}
for manFile in ./manuals/"$romName"-* ; do
if test ! -f "$manFile" ; then
echo "$romName" >> "$logFile"
fi
done
fi
done
#if [ ! -d "~/Téléchargements/logs" ] ; then
mkdir -p ~/Téléchargements/logs
#fi
mv "$logFile" ~/Téléchargements/logs
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#10 Le 14/05/2024, à 21:30
- Watael
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
gamelist.xml et _info.txt sont des noms de fichiers, pas des extensions; il faut donc procéder un peu différemment :
shopt -s extglob
#for romFile in *!(.cfg|gamelist.xml|_info.txt) #ERR!
for romFile in !(*.cfg|gamelist.xml|_info.txt)
do
romName=${romFile%.*}
for imgFile in ./images/"$romName-"{bezel,fanart,image,marquee,thumb}.*
do
fileType=${imgFile##*-}
fileType=${fileType%.*}
test -f "$imgFile" || echo "$romFile" - "${fileType^^}" >> "$logFile"
done
done
NB: les commentaires étant issus de l'algorithme du script, ils devraient apparaître avant les commandes qu'ils décrivent.
Dernière modification par Watael (Le 15/05/2024, à 10:40)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 14/05/2024, à 22:15
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Je viens d'essayer ton dernier script, les fichiers cfg sont toujours présents.
Par contre, après avoir pas mal cherché, j'ai remplacé :
for romFile in *!(.cfg|gamelist.xml|_info.txt) ; do
Par ça :
for romFile in *!(.cfg).dsk ; do
Du coup, les fichiers cfg n'apparaissent plus par contre la sortie du fichier se présente comme ça :
*!(.cfg).dsk - BEZEL
*!(.cfg).dsk - FANART
*!(.cfg).dsk - IMAGE
...
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#12 Le 14/05/2024, à 22:19
- Watael
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
parce que je m'ai gourré de ligne à copier : for romFile in !(*.cfg|gamelist.xml|_info.txt)
Dernière modification par Watael (Le 14/05/2024, à 22:20)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#13 Le 15/05/2024, à 06:56
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Oui, je viens à l'instant d'avoir la même idée.
Du coup, ça fonctionne, à un détail près. Les sous-répertoires figurent maintenant dans le fichiers de sortie.
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#14 Le 15/05/2024, à 07:21
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Ca y' est, j'ai trouvé.
Il suffit d'ajouter:
if [ -d "$romFile" ] ; then
continue
else
pour exclure les répertoire.
Voila le scripts complet :
#!/bin/bash
shopt -s extglob
location="$PWD"
logFile="$(basename $location)"
if test -f "$logFile" ; then #On vérifie si le fichier de sortie existe
rm "$logFile" #Si le fichier existe, on le supprime
fi
declare -a imgType=( bezel fanart image marquee thumb ) #On crée un tableau contenant les différents types d'images
echo -e "[IMAGES] \n" >> $logFile #On insère une section dans le fichier de sortie
for romFile in !(*.cfg|gamelist.xml|_info.txt|$logFile) ; do #On extrait les fichiers du répertoire de ROMS
if [ -d "$romFile" ] ; then
continue
else
romName=${romFile%.*} #On supprime l'extension du fichier de ROM
for type in "${imgType[@]}" ; do #On passe en revue les types d'images
for imgFile in ./images/"${romName}"-"$type".* ; do #On extrait les fichers d'images du répertoire d'images
if test ! -f "$imgFile" ; then #On vérifie que chaque fichier correpondant à la ROM existe
echo "$romFile" - "${type^^}" >> "$logFile" #Si un fichier image manque, on le consigne dans le fichier de sortiex
fi
done
done
fi
done
#On reprends les mêmes actions que précédement pour les manuels des jeux
echo -e "\n" >> $logFile
echo -e "[MANUALS] \n" >> $logFile
for romFile in !(*.cfg|gamelist.xml|_info.txt|$logFile) ; do
if [ -d "$romFile" ] ; then
continue
else
romName=${romFile%.*}
for manFile in ./manuals/"$romName"-* ; do
if test ! -f "$manFile" ; then
echo "$romName" >> "$logFile"
fi
done
fi
done
#if [ ! -d "~/Téléchargements/logs" ] ; then
mkdir -p ~/Téléchargements/logs
#fi
mv "$logFile" ~/Téléchargements/logs
Il faudra juste que je me mette aux fonctions.
Merci.
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#15 Le 15/05/2024, à 07:41
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Par contre, je viens d'essayer de créer une fonction.
Mais, dans ce cas précis ce n'est pas possible, du moins, à mon avis, car, pour la deuxième partie, qui reprend les même actions que la première,
je travaille avec u sous-répertoire différent (manuals au lieu de images) et d'une variable différente ($manFile au lieu de $imgFile)
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#16 Le 15/05/2024, à 08:16
- iznobe
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Bonjour , si tu veux transformer en fonction , il faut , que tu modifies ta base de code , et que tu transformes ce qui change , en paramètre a donner à la fonction .
en dehors de la fonction , tu travailleras alors avant a extraire ces parametres correctement et a les passer ensuite a l' appel de la fonction .
tu devras aussi avoir un parametre ( facile celui-la ) , qui sera pour traiter la sortie probablement .
Mais , c ' est pas une fonction simple pour s ' execer ici
et ce n' est pas indispensable pour que ca soit fonctionnel . je n' aurais peu etre pas du en parler .
Dernière modification par iznobe (Le 15/05/2024, à 08:20)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#17 Le 15/05/2024, à 10:24
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
J'étais justement entrain d'essayer. En fait, je suis parvenu à créer une fonction.
Seul petit bémol, pour l'affichage des manuels manquant, je me retrouve avec 5 lignes pour chaque rom.
C'est du à la boucle
for type in "${imgType[@]}" ; do
Voici mon nouveau code :
#!/bin/bash
shopt -s extglob
location="$PWD"
logFile="$(basename $location)"
if test -f "$logFile" ; then #On vérifie si le fichier de sortie existe
rm "$logFile" #Si le fichier existe, on le supprime
fi
declare -a imgType=( bezel fanart image marquee thumb ) #On crée un tableau contenant les différents types d'images
function missing_files () {
for romFile in !(*.cfg|gamelist.xml|_info.txt|$logFile) ; do #On extrait les fichiers du répertoire de ROMS
if [ -d "$romFile" ] ; then
continue
else
romName=${romFile%.*} #On supprime l'extension du fichier de ROM
for type in "${imgType[@]}" ; do #On passe en revue les types d'images
for testFiles in ./"$1"/"${romName}"-"$type".* ; do #On extrait les fichers d'images du répertoire d'images
if test ! -f "$testFiles" ; then #On vérifie que chaque fichier correpondant à la ROM existe
if [ "$1" == "images" ] ; then
echo "$romFile" - "${type^^}" >> "$logFile" #Si un fichier image manque, on le consigne dans le fichier de sortiex
elif [ "$1" == "manuals" ] ; then
echo "$romName" >> "$logFile"
fi
fi
done
done
fi
done
}
echo -e "[IMAGES] \n" >> $logFile #On insère une section dans le fichier de sortie
missing_files images
echo -e "\n" >> $logFile
echo -e "[MANUALS] \n" >> $logFile
missing_files manuals
#if [ ! -d "~/Téléchargements/logs" ] ; then
mkdir -p ~/Téléchargements/logs
#fi
mv "$logFile" ~/Téléchargements/logs
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#18 Le 15/05/2024, à 10:42
- iznobe
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
ne vaudrait il pas mieux faire une condition plutot qu ' une boucle ?
tu dois isoler chaque traitement , les uns des autres , d' abord pour la clarté et aussi pour la simplicité du code .
et aussi afficher des commentaires " utiles " .
par exemple , tu peux presenter de la sorte :
# traitement des images manquantes
le code qui ne traite que les images
tu fais une boucle , est elle vraiment necessaire ? a priori je dirais que non , si tu te retrouves avec une sortie de 5 au lieu de une .
# traitement des manuels
le code qui va bien
pourrais tu indiquer le contenu d' un dossier avec l ' arborescence avec :
namei -l /chemin dossier
le contenu d' un fichier de sortie attendue correspondant .
car là on travaille un peu a l' aveugle de notre coté , pas facile de s ' imaginer pour l' ensemble du coup .
Dernière modification par iznobe (Le 15/05/2024, à 10:45)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#19 Le 15/05/2024, à 10:43
- Watael
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
finalement, le traitement n'est pas exactement le même pour les images et les manuels, alors l'emploi d'une fonction n'est pas possible sans ajouter de complications*
et ça, c'est contraire au KISS principle.
--
* l'imbrication des boucles suffit en terme de complications.
je t'ai d'ailleurs montré comment faire "sauter" la boucle sur le tableau (mal employé ici).
Dernière modification par Watael (Le 15/05/2024, à 10:44)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#20 Le 15/05/2024, à 10:47
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
En fait, cette boucle sert à lister les 6 types d'images si les images de certains type manquent.
Par contre, effectivement, cette boucle est en trop pour les manuels.
ne vaudrait il pas mieux faire une condition plutot qu ' une boucle ?
Le problème c'est qu'il s'agît de passer en revue chaque type d'image pour vérifier sa présence. Comment remplacer cette boucle par une condition ?
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#21 Le 15/05/2024, à 10:49
- iznobe
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
sinon oublie la fonction pour le moment , surtout si tu as un script fonctionnel .
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#22 Le 15/05/2024, à 10:52
- iznobe
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
Par contre, effectivement, cette boucle est en trop pour les manuels.
Dans ce cas , sort la partie manuel de la boucle .
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#23 Le 15/05/2024, à 11:12
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
inalement, le traitement n'est pas exactement le même pour les images et les manuels, alors l'emploi d'une fonction n'est pas possible sans ajouter de complications*
Du coup, je laisse tomber la fonction alors.
Dernière question: Pourquoi, et en quoi le tableau est-il mal employé ? (Désolé, mais j'apprends... )
Dernière modification par Neelix (Le 15/05/2024, à 11:14)
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#24 Le 15/05/2024, à 13:05
- Neelix
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
En fin de compte, j'ai fini par trouver le moyen d'utiliser une fonction d'une manière pas si compliquée. Et c'est toi qui m'a mis sur la voie.
Et oui, on a supprimé la fameuse boucle
for type in "${imgType[@]}" ; do
Celle-la même qui génait.
Du coup, ça donne ça :
#!/bin/bash
shopt -s extglob
location="$PWD"
logFile="$(basename $location)"
if test -f "$logFile" ; then #On vérifie si le fichier de sortie existe
rm "$logFile" #Si le fichier existe, on le supprime
fi
function find_missing () {
for romFile in !(*.cfg|gamelist.xml|_info.txt|$logFile) ; do #On extrait les fichiers du répertoire de ROMS
if [ -d "$romFile" ] ; then
continue
else
romName=${romFile%.*}
#On recherche les fichiers images et manuels manquants
if [ "$1" == "images" ] ; then #Ici on s'occupe des images
for imgFile in ./images/"$romName"-{bezel,fanart,image,marquee,thumb}.* ; do
fileType=${imgFile##*-}
fileType=${fileType%.*}
test -f "$imgFile" || echo "$romFile" - "${fileType^^}" >> "$logFile"
done
elif [ "$1" == "manuals" ] ; then #Ici on s'occupe des manuels
for manFile in ./manuals/"$romName"-* ; do
test -f "$manFile" || echo "$romName" >> "$logFile"
done
fi
fi
done
}
echo -e "[IMAGES] \n" >> $logFile #On insère une section dans le fichier de sortie
find_missing images
echo -e "\n" >> $logFile
echo -e "[MANUALS] \n" >> $logFile
find_missing manuals
#if [ ! -d "~/Téléchargements/logs" ] ; then
mkdir -p ~/Téléchargements/logs
#fi
mv "$logFile" ~/Téléchargements/logs
Xubuntu 22.04 Jammy x64
Intel Core i5-13400 (2.5 GHz / 4.6 GHz) - RAM: 16Go
Gigabyte GeForce RTX 3060 WINDFORCE OC 12G - 12Go
Audio: High Definition Audio Realtek
Hors ligne
#25 Le 15/05/2024, à 14:14
- iznobe
Re : [Résolu] Exclure tous les fichiers portant une extension particulère
ca me parait pas trop mal , niveau codification et clarté de code .
Si ca fonctionne , c' est le principal .
Pour les détails , faut voir ca avec le pro : @Watael .
Dernière modification par iznobe (Le 15/05/2024, à 14:15)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne