GNU/Linux >> Tutoriels Linux >  >> Linux

Comment dire à Xargs quel argument choisir ??

Cette question a déjà des réponses ici :Comment puis-je trouver des fichiers et ensuite utiliser xargs pour les déplacer ?

(5 réponses)
Fermé il y a 6 ans.

Lorsque xargs redirige la sortie de la première commande vers l'argument de la deuxième commande et qu'il n'y a pas de choix sur quel argument pour quel élément de la sortie, alors il n'y a qu'une seule façon, par exemple :

ls | xargs file  # there are as many arguments as files in the listing,
                 # but the user does not have too choose himself

maintenant s'il y a besoin de choix :

ls | xargs file | grep image | xargs mv.....   # here the user has to 
                                               # deal  with two arguments of mv, first for source second for destination, suppose your destination argument is set already by yourself and you have to put the output into the source argument. 

Comment dites-vous à xargs de rediriger la sortie standard de la première commande vers l'argument de votre choix de la seconde commande ?

Réponse acceptée :

Vous pouvez utiliser -I pour définir un espace réservé qui sera remplacé par chaque valeur des arguments fournis à xargs . Par exemple,

ls -1 | xargs -I '{}' echo '{}'

appellera echo une fois par ligne à partir de ls la sortie. Vous verrez souvent '{}' utilisé, probablement parce que c'est la même chose que find espace réservé.

Dans votre cas, vous devez également pré-traiter le file 's output pour extraire les noms de fichiers correspondants ; puisqu'il y a un grep là-dedans, nous pouvons simplement utiliser awk faire les deux, et simplifier le file invocation également :

file * | awk -F: '/image/ { print $1 }' | xargs -I '{}' mv '{}' destination

Si vous avez GNU mv vous pouvez simplement utiliser -t pour passer plusieurs fichiers sources :

file * | awk -F: '/image/ { print $1 }' | xargs mv -t destination

Linux
  1. Linux - Comment identifier quelle distribution Linux est en cours d'exécution ??

  2. Comment puis-je savoir si je suis dans un écran ?

  3. Comment créer un fichier nommé comme un argument de ligne de commande ?

  4. Comment dire à Dolphin quels fichiers cacher ?

  5. Comment savoir quels services s'exécutent au démarrage sur Raspberry Pi ? (raspbian)

Proxmox vs Hyper-V :comment choisir ?

Comment utiliser la commande Linux xargs

Comment installer Devuan(I)

Comment installer Linux étape par étape

Comment utiliser la commande xargs sous Linux ?

Comment puis-je savoir quelle limite d'utilisateurs je rencontre ?