Outre la méthode proposée par @Bob, il existe une autre méthode, plus souple : xargs
:
Vous pourriez utiliser
cat foo | xargs some_program
ce qui est fondamentalement équivalent à
some_program `cat foo`
Si le programme n'attend qu'un seul argument à la fois, vous pouvez procéder comme suit
cat foo | xargs -n 1 some_program
Et some_program
serait appelé une fois pour chaque ligne d'entrée.
Il existe de nombreuses autres options pour xargs
comme la gestion des "mauvais" noms de fichiers (avec des espaces et d'autres caractères spéciaux), la limitation du nombre de processus en cours d'exécution simultanément, etc.