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