Mailinglist Archive: opensuse-de (5177 mails)

< Previous Next >
Re: find | grep
  • From: Jan.Trippler@xxxxxxxxxxx (Jan Trippler)
  • Date: Wed, 25 Jun 2003 21:41:35 +0200
  • Message-id: <20030625214135.C3031@xxxxxxxxxxxxxx>
On Mit, 25 Jun 2003 at 16:21 (+0200), Kristian Koehntopp wrote:
On Wed, Jun 25, 2003 at 04:12:13PM +0200, Horst Jäger wrote:
[...]
find / -iname '*.txt' -exec grep egal {} \; tut's, aber klappt nicht mit
z.B. egal* . Das Problem hatte ich früher schon: man muss Anführungszeichen
setzen ("egal*" ) und das klappt auch nicht - jemand hat mich auch in
seiner Mail davor gewarnt.

grep verwendet keine Shell Globs ("*", "?", "[a-z]"), sondern
Grep Regular Expressions. Statt "*" schreibst Du also ".*" (.
ist ein beliebiges Zeichen, und * sind Null oder mehr
Wiederholungen des vorhergehenden Zeichens), statt "?" schreibst
Du "." und "[a-z]" wird tatsächlich auch "[a-z]" beschrieben.

Die regex sind doch aber im angegebenen Fall total überflüssig. Der
Befehl

grep -l egal datei

findet genauso jede Datei, in der die *Zeichenfolge* egal auftaucht,
wie

grep -l "egal.*" datei

oder

grep -l ".*egal.*" datei

Horst, was hast Du denn getestet? Ich bin nach wie vor der Meinung,
das viele der vorgeschlagenen Lösungen genau das tun, was Du willst.

Jan


< Previous Next >