[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian] Datei nach Inhalt suchen



On Die, Apr 10, 2001 at 02:47:28PM +0200, Matthias Fechner wrote:
> Hi,

sali,

> ich suche einen Inhalt in einer Datei.
> Bis jetzt habe ich das immer mit folgenden Befehl gemacht:
> find . -type f | xargs grep <suchstring>
> 
> Aber jetzt bekomme ich folgende Fehlereldung zurueck:
> xargs: unmatched single quote

er findet ein file mit ' drin. dann wird der qouting mechnismus der shell
aktiviert und findet natürlich kein gegenstück dazu. wenn er ein zweites
file mit ' darin finden würde hättest du ein unbrauchbares ergebniss,
weil dann alles wischen den qoutes als ein dateiname behandelt werden
würde und so einen gibt's effetkiv natürlich nicht auf der pladde.

du kannst das aber umgehen und zwar folgendermassen:

find . type f -print0 | xargs -0 grep <suchstring>

dann werden die string argumente die an xargs übergeben werden, ähnlich wie in
C, durch ein 0 byte am schluss getrennt. xargs kann mit dieser find
option umgehen und macht eine trennung mit den einzelnen eingaben nach
dem 0 byte und gibt die argumente korrekt an grep weiter.
-print0/-0 ist immer dann von vorteil wenn du keine annahmen über die
dateien machen kannst. ein 0 byte und / sind die einzigen zeichen die
man auf ext2 nicht in einem dateinamen verwenden darf. deswegen ist
diese lösung sicherer. es hält dich z.b. auch niemand ab ein * als
dateinamen zu verwenden oder sonstwas das irgendwie shell spezifisch
ist. die ergebnisse wären konfus.

btw, dass kann AFAIK nur GNU find/xargs. die solaris büchse hier kann
das (ohne GNU) nicht.

--
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------

786 eingetragene Mitglieder in dieser Liste.


Reply to: