GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man Xargs sagen, welches Argument es wählen soll?

Für diese Frage gibt es hier bereits Antworten :Wie kann ich Dateien finden und sie dann mit xargs verschieben?

(5 Antworten)
Vor 6 Jahren geschlossen.

Wenn xargs die Ausgabe des ersten Befehls in das Argument des zweiten Befehls umleitet und es keine Wahl gibt, welches Argument für welches Element der Ausgabe verwendet wird, gibt es zum Beispiel nur einen Weg:

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

jetzt, wenn es eine Notwendigkeit für die Wahl gibt:

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. 

Wie weisen Sie xargs an, die Standardausgabe des ersten Befehls in das Argument Ihrer Wahl des zweiten Befehls umzuleiten?

Akzeptierte Antwort:

Sie können -I verwenden um einen Platzhalter zu definieren, der durch jeden Wert der Argumente ersetzt wird, die xargs zugeführt werden . Zum Beispiel

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

ruft echo auf einmal pro Zeile von ls 's Ausgang. Sie werden häufig '{}' sehen verwendet, vermutlich weil es dasselbe ist wie find Platzhalter.

In Ihrem Fall müssen Sie auch file vorverarbeiten ’s-Ausgabe, um die übereinstimmenden Dateinamen zu extrahieren; da es ein grep gibt dort können wir einfach awk verwenden um beides zu tun und die file zu vereinfachen Aufruf auch:

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

Wenn Sie GNU mv haben Sie könnten einfach -t verwenden um mehrere Quelldateien zu übergeben:

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

Linux
  1. Linux – Wie erkennt man, welche Linux-Distribution läuft?

  2. Suchen -exec + Vs Finden | Xargs:Welche soll man wählen?

  3. Linux – Wie wählt man eine Distribution aus?

  4. Wie erkennt man, welche Festplatte Sda und welche Sdb-Festplatte ist?

  5. Wie teilt man Dolphin mit, welche Dateien versteckt werden sollen?

Proxmox vs. Hyper-V:Wie wählt man?

So verwenden Sie den Linux-xargs-Befehl

So installieren Sie Devuan(I)

So installieren Sie Linux Schritt für Schritt

Wie verwende ich den xargs-Befehl unter Linux?

Wie kann ich feststellen, welche Dienste beim Start auf dem Raspberry Pi ausgeführt werden? (Raspbian)