
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 / xargs
eine 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 --