(RESOLU)Têtes de mort et compagnie ne fonctionne pas chez moi

Bonjour,
[color=#0072bc][color=#cc00cc][size=x-small]jpverrue[/size][/color][/color] a donné sur le site[size=x-small] [/size][font=system-ui, -apple-system, ‹ Segoe UI ›, Roboto, ‹ Helvetica Neue ›, ‹ Noto Sans ›, ‹ Liberation Sans ›, Arial, sans-serif, ‹ Apple Color Emoji ›, ‹ Segoe UI Emoji ›, ‹ Segoe UI Symbol ›, ‹ Noto Color Emoji ›][size=x-small]https://darktable.fr/posts/2023/02/têtes-de-mort-et-compagnie/ un script destiné à rechercher les têtes de mort dans la base de données de darktable, j’ai essayé mais ne suis pas informatitien même si j’ai quelques bases, mais pas sur les scripts.[/size][/font]
[font=system-ui, -apple-system, ‹ Segoe UI ›, Roboto, ‹ Helvetica Neue ›, ‹ Noto Sans ›, ‹ Liberation Sans ›, Arial, sans-serif, ‹ Apple Color Emoji ›, ‹ Segoe UI Emoji ›, ‹ Segoe UI Symbol ›, ‹ Noto Color Emoji ›][size=x-small]Mon systeme Ubuntu 20.04.2 LTS[/size][/font]
[font=system-ui, -apple-system, ‹ Segoe UI ›, Roboto, ‹ Helvetica Neue ›, ‹ Noto Sans ›, ‹ Liberation Sans ›, Arial, sans-serif, ‹ Apple Color Emoji ›, ‹ Segoe UI Emoji ›, ‹ Segoe UI Symbol ›, ‹ Noto Color Emoji ›][size=x-small]J’ai installé [color=#212529][size=x-small][font=SFMono-Regular, Menlo, Monaco, Consolas, ‹ Liberation Mono ›, ‹ Courier New ›, monospace]sqlite3 et modifié l’adresse de la library.db.[/font][/size][/color][/size][/font]
[font=system-ui, -apple-system, ‹ Segoe UI ›, Roboto, ‹ Helvetica Neue ›, ‹ Noto Sans ›, ‹ Liberation Sans ›, Arial, sans-serif, ‹ Apple Color Emoji ›, ‹ Segoe UI Emoji ›, ‹ Segoe UI Symbol ›, ‹ Noto Color Emoji ›][size=x-small][color=#212529][size=x-small][font=SFMono-Regular, Menlo, Monaco, Consolas, ‹ Liberation Mono ›, ‹ Courier New ›, monospace]voici le résultat du lancement du script dans le terminal :[/font][/size][/color][/size][/font]

[code]#! /bin/bash

Usage : $0 []

If not provided, use $Default LibPath below

LibPath=${1:-« /home/jmm/.config/darktable/library.db »}

sqlite3 -separator ‹ / › ${LibPath} \
‹ SELECT film_rolls.folder, images.filename
FROM images
INNER JOIN film_rolls
ON film_rolls.id = images.film_id; › |
while read FilePath
do
[ -e « ${FilePath} » ] || echo « ${FilePath} »
done
SELECT film_rolls.folder, images.filename
FROM images
INNER JOIN film_rolls
ON film_rolls.id = images.film_id; : commande introuvable
[/code]
Puis-je modifier quelque chose facilement pour que ça fonctionne ? Où est l’erreur ?
Merci de vos réponses

Bonjour, peux-tu mettre un copie d’écran de l’exécution ou copier les erreurs ?

C’est la copie d’écran de l’exécution qu’il faut. Après tu peux essayer ce script : https://github.com/darktable-org/darktable/blob/master/tools/purge_non_existing_images.sh
Si tu le lances sans argument, il liste les fichiers n’existant pas dans la librairy.db et avec l’argument --purge, il la purge et affiche la liste des fichiers purgés.

Bonjour
Le script fonctionne sur Fedora:
[dom@fedora Efface]$ bash test.sh
/home/dom/Téléchargements/P1280107.orf
[dom@fedora Efface]$

Le mieux est de créer un fichier avec un éditeur et de lancer la commande : bash nom_du_fichier.sh

Effectivement, il y a un bug bizarre dans la version du script qui est en ligne.
La ligne 5 qui est juste une ligne de séparation contient en fait deux espaces. Ce sont ces espaces qui font planter le script. Voici une version corrigée.

[code]#! /bin/bash

Usage : $0 []

If not provided, use Default LibPath below

LibPath=${1:-« /home/jpv/.config/darktable-prod/library.db »}

sqlite3 -separator ‹ / › ${LibPath}
‹ SELECT film_rolls.folder, images.filename
FROM images
INNER JOIN film_rolls
ON film_rolls.id = images.film_id; › |
while read FilePath
do
[ -e « ${FilePath} » ] || echo « ${FilePath} »
done[/code]

C’est un truc que je n’ai jamais vu en bash. Ça ne devrait se produire. Si quelqu’un a une explication, je suis preneur !
[hr]
Bien sûr, je vais aussi mettre à jour l’article sur le blog.

Merci ! ça fonctionne maintenant !

Voilà, tout est en ordre. J’ai mis également à jour l’article du blog. C’est ICI