GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo decirle a Xargs qué argumento elegir?

Esta pregunta ya tiene respuestas aquí :¿Cómo puedo encontrar archivos y luego usar xargs para moverlos?

(5 respuestas)
Cerrado hace 6 años.

Cuando xargs redirige la salida del primer comando al argumento del segundo comando y no hay elección sobre qué argumento para qué elemento de la salida, entonces solo hay una forma, por ejemplo:

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

ahora si hay necesidad de elección:

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. 

¿Cómo le dices a xargs que redirija la salida estándar del primer comando al argumento de tu elección del segundo comando?

Respuesta aceptada:

Puedes usar -I para definir un marcador de posición que se reemplazará con cada valor de los argumentos alimentados a xargs . Por ejemplo,

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

llamará a echo una vez por línea de ls la salida. A menudo verás '{}' usado, presumiblemente porque es lo mismo que find marcador de posición.

En su caso, también necesita preprocesar file 's de salida para extraer los nombres de archivo coincidentes; ya que hay un grep ahí solo podemos usar awk para hacer ambas cosas y simplificar el file invocación también:

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

Si tienes GNU mv podrías simplemente usar -t para pasar múltiples archivos fuente:

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

Linux
  1. ¿Cómo decirle a Gnome que vuelva a leer el ~/.profile?

  2. ¿Cómo saber que estoy corriendo en un Chroot?

  3. Linux – ¿Cómo elegir una distribución?

  4. ¿Cómo identificar un proceso que no tiene Pid?

  5. ¿Cómo saber qué disco es Sda y cuál es Sdb?

Proxmox vs Hyper-V:¿Cómo elegir?

Cómo usar el comando xargs de Linux

Cómo instalar Devuan(I)

Buscar -exec + Vs Buscar | Xargs:¿Cuál elegir?

Cómo instalar Linux paso a paso

¿Cómo usar el comando xargs en Linux?