GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Durch Zeilenumbrüche getrennte xargs

Lösung 1:

GNU-Xargs (Standard unter Linux; installieren Sie findutils von MacPorts unter OS X, um es zu bekommen) unterstützt -d Damit können Sie ein benutzerdefiniertes Trennzeichen für die Eingabe angeben, sodass Sie

ausführen können
ls *foo | xargs -d '\n' -P4 foo 

Lösung 2:

Etwas in der Art von

alias myxargs='perl -p -e "s/\n/\0/;" | xargs -0'
cat nonzerofile | myxargs command

sollte funktionieren.

Lösung 3:

Bei Bash ziehe ich es im Allgemeinen vor, xargs für alles, was am wenigsten knifflig ist, zugunsten von While-Read-Schleifen zu vermeiden. Für Ihre Frage while read -ar LINE; do ...; done erledigt den Job (denken Sie daran, die Array-Syntax mit LINE zu verwenden, z. B. ${LINE[@]} für die ganze Linie). Dies erfordert keine Trickserei:Standardmäßig verwendet read nur \n als Zeilenabschlusszeichen.

Ich sollte eine Frage zu den Vor- und Nachteilen von xargs vs. While-Read-Schleifen auf SO stellen ... fertig!

Lösung 4:

$ echo "1\n2 3\n4 5 6" | xargs -L1 echo  "#"
# 1
# 2 3
# 4 5 6

Linux
  1. xargs-Befehlsbeispiele in Linux

  2. xargs:Befehl nicht gefunden

  3. find -exec cmd {} + vs | xargs

  4. Beschränken Sie die Verzeichnisgröße

  5. Wie sichert man crontab -e Dateien?

11 Beispiele für Xargs-Befehle unter Linux

Xargs-Befehl unter Linux

Mehrere Parameter über Xargs übergeben?

Beispiele für xargs-Befehle unter Linux

Dateien verschwinden auf Linux-Server

Wie man entkommt! im Passwort?