Articles of xargs

Modifier la chaîne de remplacement dans xargs

Lorsque j’utilise xargs je n’ai parfois pas besoin d’utiliser explicitement la chaîne de remplacement: find . -name “*.txt” | xargs rm -rf Dans d’autres cas, je veux spécifier la chaîne de remplacement pour faire des choses comme: find . -name “*.txt” | xargs -I ‘{}’ mv ‘{}’ /foo/'{}’.bar La commande précédente déplacerait tous les fichiers […]

Tarballing sans métadonnées Git

Mon arbre source contient plusieurs répertoires qui utilisent le contrôle de source Git, et je dois archiver l’arbre entier à l’exclusion de toute référence aux métadonnées Git ou aux fichiers journaux personnalisés. Je pensais essayer avec une combinaison de find / egrep / xargs / tar, mais le fichier tar contient en quelque sorte les […]

Exécution de programmes en parallèle à l’aide de xargs

J’ai actuellement le script actuel. #!/bin/bash # script.sh for i in {0..99}; do script-to-run.sh input/ output/ $i done Je souhaite l’exécuter en parallèle en utilisant xargs. j’ai essayé script.sh | xargs -P8 Mais faire ce qui précède ne s’exécute qu’une fois à la fois. Pas de chance avec -n8 aussi. Ajouter et à la fin […]

GNU parallèle ne fonctionne pas du tout

J’ai essayé d’utiliser GNU Parallel pendant un certain temps, mais je n’ai jamais réussi à le faire fonctionner du tout! Par exemple, en cours d’exécution (dans un répertoire non vide!): ls | parallel echo # Outputs single new line ls | parallel echo echo echo # Outputs three new lines. ls | parallel echo {} […]

xargs ne reconnaît pas les alias bash

J’essaie d’exécuter la commande suivante: find . -iname ‘.#*’ -print0 | xargs -0 -L 1 foobar où “foobar” est un alias ou une fonction défini dans mon fichier .bashrc (dans mon cas, c’est une fonction qui prend un paramètre). Apparemment, xargs ne les reconnaît pas comme des choses qu’il peut exécuter. Y a-t-il une manière […]

Appeler des fonctions shell avec xargs

J’essaie d’utiliser xargs pour appeler une fonction plus complexe en parallèle. #!/bin/bash echo_var(){ echo $1 return 0 } seq -f “n%04g” 1 100 |xargs -n 1 -P 10 -i echo_var {} exit 0 Cela renvoie l’erreur xargs: echo_var: No such file or directory Toute idée sur la façon dont je peux utiliser xargs pour y […]

Comment ignorer les commandes xargs si l’entrée stdin est vide?

Considérez cette commande: ls /mydir/*.txt | xargs chown root L’intention est de changer les propriétaires de tous les fichiers texte de mydir en root Le problème est que s’il n’y a pas de fichiers .txt dans mydir alors xargs renvoie une erreur indiquant qu’il n’y a pas de chemin spécifié. Ceci est un exemple inoffensif […]

Comment utiliser> dans une commande xargs?

Je veux trouver une commande bash qui me permettra de graver chaque fichier dans un répertoire et d’écrire la sortie de ce fichier dans un fichier séparé. Ma conjecture aurait été de faire quelque chose comme ça ls -1 | xargs -I{} “grep ABC ‘{}’ > ‘{}’.out” mais, pour autant que je sache, xargs n’aime […]

Comment puis-je faire en sorte que xargs gère les noms de fichiers contenant des espaces?

$ ls *mp3 | xargs mplayer Playing Lemon. File not found: ‘Lemon’ Playing Tree.mp3. File not found: ‘Tree.mp3′ Exiting… (End of file) Ma commande échoue car le fichier “Lemon Tree.mp3” contient des espaces et xargs pense qu’il s’agit de deux fichiers. Puis-je faire fonctionner find + xargs avec des noms de fichiers comme celui-ci?

Appel de plusieurs commandes via xargs

cat a.txt | xargs -I % echo % Dans l’exemple ci-dessus, xargs prend echo % comme argument de commande. Mais dans certains cas, j’ai besoin de plusieurs commandes pour les traiter, par exemple: cat a.txt | xargs -I % {command1; command2; … } Mais xargs n’accepte pas ce formulaire. Une solution que je connais est […]