Cómo crear archivos a partir de una lista que contiene espacio

Cómo crear archivos a partir de una lista que contiene espacio

Me gustaría crear archivos de la siguiente lista.

No hay problema si la lista no tiene un espacio... pero el problema es que tiene un espacio

user@linux:~$ cat file.txt 
Apples
Bing Cherry
Crab Apples
Dragon Fruit
user@linux:~$ 

Antes

ser@pc:~$ ls -l
total 4
-rw-r--r-- 1 user user 44 Jun   9 14:06 file.txt
user@linux:~$ 

toque xargs

user@linux:~$ cat file.txt | xargs touch 
user@linux:~$ 

En lugar de crear Apples, Bing Cherry, Crab Apples, Dragon Fruit, el comando produce estos resultados.

Después

user@linux:~$ ls -l
total 4
-rw-r--r-- 1 user user  0 Jun   9 14:11 Apples
-rw-r--r-- 1 user user  0 Jun   9 14:11 Bing
-rw-r--r-- 1 user user  0 Jun   9 14:11 Cherry
-rw-r--r-- 1 user user  0 Jun   9 14:11 Crab
-rw-r--r-- 1 user user  0 Jun   9 14:11 Dragon
-rw-r--r-- 1 user user 44 Jun   9 14:06 file.txt
-rw-r--r-- 1 user user  0 Jun   9 14:11 Fruit
user@linux:~$ 

¿Qué debo hacer para manejar el espacio en esta situación?

Respuesta1

Con la implementación GNU de xargs, puede especificar una nueva línea como separador con la opción -d/ :--delimiter

xargs --no-run-if-empty --delimiter='\n' --arg-file=file.txt touch --

Con opciones cortas:

xargs -r -d '\n' -a file.txt touch --

información relacionada