[linux-l] xargs

Winfried Wendler mails at ing-wendler.de
Sa Apr 19 16:33:29 CEST 2008


Hallo Ralf und Liste

> >     find -type f | xargs -d '\n' grep -i copyright
>
> Bleibt aber an Files mit Leerzeichen haengen.
>
> Mein Vorschlag:
> find -type f -print0 | xargs -0 -- grep -i copyright
>

Versuch macht klug:
2 Files in einem Directory: "ll" und "nach hause telefonieren"

Eingabe:
find -type f | xargs -d '\n' printf "=%s=\n"

Ausgabe:
=./ll=
=./nach hause telefonieren=

also nix mit Haengenbleiben an Leerzeichen. Wenn ich "-d '\n'" weglasse dann ja
=./ll=
=./nach=
=hause=
=telefonieren=

Ich weiss aber nicht, warum man in diesem Fall nicht auf xargs verzichten kann.
Mein Vorschlag
find -type f -print0 -exec grep -i copyright \{\} \;

xarges ist meines Wissens dazu dar, die Anzahl der Parameter auzusplitten,
damit sie die Länge einer Kommandozeile nicht überschreiten. Also  rm [10000
Filenamen] in 10000 mal rm [1 Filename] zu wandeln. Das ist aber beim find
mit -exec nicht der Fall. Da kommet jedes File schön einzeln.

Gruss
Winfried




Mehr Informationen über die Mailingliste linux-l