[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Changer le répertoire courant ?



salut,


* read renvoie faux quand il ne peut plus lire donc


    { find ./ -iname \*.mp4
      echo "EOF"
    } | {
        while true; do
        read -r i
        test "$i" = "EOF" && break
        f_image-fusion "$i"
    }

s'écrit plus traditionelement

    { find ./ -iname \*.mp4
      echo "EOF"
    } | {
        while IFS= read -r i; do
            f_image-fusion "$i"
        done
    }

mais les boucles while sur des read en shell c'est pas très
efficace: l'outils posix pour faire ce que tu veux faire est xargs

    find ./ -iname \*.mp4 -print0 |xargs -IX ffmpeg -i X image%d.jpg

> Je fais cela sur dés répertoire, et j’aurai aimer rediriger la sortie de la fonction  f_image-fusion sur un autre répertoire que le courant, sans avoir à imbriquer une autre boucle est-ce que c’est possible ?

ce que je comprend c'est que tu veux que les images soient générées dans
un autre répertoire que le répertoire courant. pour cela il te faut
juste modifier le template du nom de fichier

    find ./ -iname \*.mp4 -print0 |
        xargs -0 -IX ffmpeg -i X /tmp/image%d.jpg

si ton répertoire de destination est dépendant du répertoire dans lequel
se trouve le mp4, il faut produire la liste des arguments de ffmpeg
avec find et les passer à xargs.

si j'ai compris correctement ton problème, ton script final est

    find tmp/born/ -type f -printf '%f\0%h/image%%d.jpg\0' |
        xargs -0 -n2 ffmpeg -i

a+
marc


Reply to: