So erstellen Sie Dateien aus einer Liste, die Leerzeichen enthalten

So erstellen Sie Dateien aus einer Liste, die Leerzeichen enthalten

Ich möchte Dateien aus der folgenden Liste erstellen.

Es ist kein Problem, wenn die Liste kein Leerzeichen enthält ... aber das Problem ist, dass sie ein Leerzeichen enthält

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

Vor

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

xargs berühren

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

Anstatt zu erstellen Apples, Bing Cherry, Crab Apples, Dragon Fruit, erzeugt der Befehl diese Ausgabe.

Nach

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

Was muss ich in dieser Situation tun, um mit dem Speicherplatz umzugehen?

Antwort1

Mit der GNU-Implementierung von können Sie mit der Option / xargseine neue Zeile als Trennzeichen angeben :-d--delimiter

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

Mit kurzen Optionen:

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

verwandte Informationen