Xargs

如何從包含空格的列表中創建文件

  • June 9, 2019

我想從以下列表中創建文件。

如果列表沒有空格沒有問題……但問題是它有空格

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

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

xargs 觸摸

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

不是創建Apples, Bing Cherry, Crab Apples, Dragon Fruit,而是產生這些輸出的命令。

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:~$ 

在這種情況下我應該怎麼處理空間?

使用 GNU 實現,您可以使用/選項xargs指定換行符作為分隔符:-d``--delimiter

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

短選項:

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

引用自:https://unix.stackexchange.com/questions/523804