Aquí hay 3 posibilidades que pueden funcionar para usted:
1. BSD xargs
Esto está integrado en MacOS, pero requerirá que cites los nombres de archivo en tu list-of-files
$ more list-of-files
'file1'
'file2'
'file 3'
'file 4'
nota: agregué la opción -t
para mostrar el comando generado antes de que se ejecute.
$ cat list-of-files | xargs -t -I {} echo "{}"
echo file1
file1
echo file2
file2
echo file 3
file 3
echo file 4
file 4
2. GNU xargs
GNU xargs no está instalado en MacOS de forma predeterminada, pero se puede instalar a través de homebrew (en el paquete findutils).
brew install findutils
El uso de GNU xargs a través de homebrew no requiere que cites los nombres de archivo, y daría el mismo resultado que usar BSD xargs, y citar los nombres de archivo (opción 1, arriba).
3. buscar (en lugar de list-of-files
)
En lugar de usar un archivo para su entrada, use el comando find
. Algo como lo siguiente debería funcionar:
$ ls -laF file*
-rw-r--r-- 1 sfederman staff 0 Jun 7 22:53 file 4
-rw-r--r-- 1 sfederman staff 0 Jun 7 22:53 file 3
-rw-r--r-- 1 sfederman staff 0 Jun 7 22:53 file1
-rw-r--r-- 1 sfederman staff 0 Jun 7 22:53 file2
$ find . -name "file*" | xargs -0 -I {} echo "{}"
./file 4
./file 3
./file1
./file2
O, evitando xargs completamente:
$ find . -name "file*" -exec echo "{}" \;
./file 4
./file1
./file2
./file 3