Je suis sur Ubuntu. J'ai copié certains arguments (séparés par un retour à la ligne) et je peux utiliser xsel pour les imprimer comme ceci
$ xsel
arg1
arg2
arg3
arg4
...
Maintenant, je veux utiliser chacun de ces arguments pour une autre commande et exécuter cette commande autant de fois qu'il y a d'arguments.
J'ai donc essayé
$ xsel | mycommand "constantArgument" $1
Cependant, cela mycommand
n'a été exécuté que pour le premier argument. Comment puis-je l'exécuter pour chaque argument?
shell
command-line
xargs
arguments
Nous s
la source
la source
Réponses:
Vous pouvez simplement utiliser
xargs
-n1
signifie un argument pour ma commande, mais c'est juste un essai à sec, il montrera ce qui va être exécuté, pour l'exécuter supprimerecho
Pour un argument constant
la source
xsel | xargs -n1 echo mycommand -more-arg
xsel | xargs -n2 echo mycommand
deux arguments par commandeOu quelque chose de similaire. Vous pouvez également utiliser
xargs
, qui est une commande très puissante pour la manipulation des arguments de ligne de commande.la source
Pour un peu de personnalisation:
Vous pouvez supprimer le
-noexecute
drapeau après avoir vu comment cela fonctionne.Si cela fonctionne pour vous, vous pouvez abandonner
sh
entièrement et faire à la place:Ou plus vite:
L'une ou l'autre manière est facile et le fera.
la source