Réponse Mise à jour
Je ne suis pas familier avec les git
spécifiques commandes que vous utilisez et vous ne semblent pas être répondre raisonnablement aux questions dans les commentaires non plus. Je suppose que vous voulez probablement quelque chose comme ça si:
git ls-files | grep -v 'bin' | xargs -L 128 git grep -e "alex" --
Réponse originale
La méthode classique pour résoudre "erreur: Argument list too long" est avec xargs
. Il peut être utilisé pour appeler de façon répétée un script dont le nom est fourni, ou echo
si vous n'en fournissez pas, avec un nombre limité d'arguments jusqu'à ce que les arguments soient tous consommés. Donc, imaginez que vous avez un million de fichiers dans un répertoire, alors ls *
échouera, mais un simple ls
fonctionnera. Ainsi, nous pouvons mettre cela à utiliser avec:
ls | xargs -L 128
qui appellera echo
(parce que nous ne fournissons un nom d'utilitaire) à plusieurs reprises avec 128 noms de fichiers à la fois jusqu'à ce que tous sont en écho.
Ainsi, vous pouvez faire:
ls | xargs -L 128 yourScript.py
pour appeler votre script Python à plusieurs reprises avec 128 noms de fichiers à la fois. Bien sûr, vous pouvez faire quelque chose de complètement différent et incompatible avec cette technique, mais vos réponses ne sont pas très utiles jusqu'à présent ...
Vous demandez "quel peut être le problème"? Eh bien, la liste des arguments est probablement trop longue, n'est-ce pas? Avez-vous vérifié sa longueur? Chaque coquille a des limites. – arkascha
Comment puis-je vérifier? Quand je cours depuis la ligne de commande, je n'ai pas de problème. @arkascha – Alex
Eh bien, comment ça s'appelle? Vous pourriez rediriger la liste des arguments dans un fichier par exemple. – arkascha