• [^] # Re: En shell ...

    Posté par . En réponse au message Traiter un fichier sur deux ?. Évalué à 1.

    echo *.png | while read i j ; do ./commande $i ; done
    Ca ne marche pas. 'echo' affiche tout en une seule ligne et d'après la doc de read : "Une ligne est lue depuis l'entrée standard, puis le premier mot de cette ligne est affecté au premier nom, le second mot au second nom, et ainsi de suite. Les mots restants sont affectés au dernier nom."
    De toute façon, cette solution ne gèrerait pas correctement les noms de fichiers avec des espaces.

    Je vois 2 solutions :
    1. Le plus efficace, s'il n'y a pas trop de fichier et si <command> accepte plusieurs fichiers en ligne de commande :
    ( IFS=$'\n'; <command> `ls | sed -n 'N;P'` )
    2. Sinon :
    ls | sed -n 'N;P' | while read; do <command> "$REPLY"; done