• # entrée standard et arguments

    Posté par . En réponse au message Python / (linux) shell : interfacer l'un avec l'autre. Évalué à 8. Dernière modification le 22 septembre 2015 à 14:33.

    Que je sache, grep n'ouvre les fichiers que depuis ses arguments en ligne de commande. Ici il va donc chercher un fichier {} et un ;
    La syntaxe que tu essayes d'utiliser est celle de find, c-à-d find commande {} \;, c'est find qui va lancer commande en remplaçant le {} par le fichier en cours.

    Pour des fichiers sans espace, on peut simplement utiliser grep string $(./script.py)
    Avec cette syntaxe le shell va d'abord exécuter ce qui est entre $() et passer la sortie de ce programme comme arguments pour la commande grep.

    Une solution plus générale est d'utiliser xargs (la page de man décrit tout ce qui est possible) pour lancer une commande pour chaque ligne de l'entrée standard.