Comparer des noms de fichiers en texte avec des fichiers

Bonjour,

Mon blogue tourne avec le moteur PluXml
J’ai dans mon dossier d’images des images que je n’utilise pas (plus) dans mes billets.
Y a t-il moyen de faire le tri pour que je puisse les effacer ?

Il faudrait pouvoir sortir la liste des images .jpg et .png appelées dans les billets (autant de des documents XML dans htdocs/data/article/ que de billets) avec les fichiers d’image .jpg et .png présents dans htdocs/data/images/ et faire ressortir les images non appelées dans les billets.

Une idée SVP ?

Merci d’avance !

Si tu pratiques PHP, il suffit de coder un script qui fasse l’opération.
Avec des classes comme SimpleXML ou XMLReader, on peut extraire l’information.
Ce n’est pas vraiment un problème lié à Debian mais plus à poster dans un forum dédié à la programmation.

Je ne connais pas PHP

avec bash peut-être ?

en effet, ce n’est pas specifique Debian

Peut-on imaginer utiliser la commande :
grep -lri nom_de_l’image chemin_du_répertoire
pour savoir si une image est utilisée dans les billets (oui : le fichier indiqué, non : pas de réponse)
mais avec une commande qui se répéterait pour chaque image d’un répertoire donné ?
Ensuite il me suffirait de parcourir les réponses pour isoler celles négatives…

Bonsoir,

Je pense que le plus simple serait de:

  1. Lister les fichiers images.
  2. Rechercher si la première image listée, est dans tes codes xml.
  3. Oui => on passe à la suivante, Non => on supprime l’image ou on “echo $image >> fichier” et on passe à la suivante.

On peut parcourir un fichier ligne par ligne avec un boucle while et donc baser le while sur $line de $un_fichier.
http://lipn.univ-paris13.fr/~cerin/SE/S2SE_01_LectureFichiersShell2.html
http://abs.traduc.org/

merci je vais lire ça

  1. Lister les fichiers images.
    Dans htdocs/data/images/

ou

  1. Rechercher si la première image listée, est dans tes codes xml.
  2. Oui => on passe à la suivante, Non => on supprime l’image ou on “echo $image >> fichier” et on passe à la suivante.