[linux-l] Tracker Search Tool: Wie sucht man nach einem String mit mehreren Wörtern?

Robert C. Helling r.helling at iu-bremen.de
Do Jul 26 16:42:02 CEST 2007


On Thu, 26 Jul 2007, Detlef Lechner wrote:

> Das Programm soll einen Suchstring im Inhalt vieler Dateien suchen und
> finden.
> Das Programm findet einen Suchstring, der aus einem Wort besteht,
> einwandfrei.
> Wenn der Suchstring aber aus mehreren Wörtern besteht, dann gibt das
> Programm die Namen und Stellen der Dateien der Dateien aus, in denen die
> einzelnen Wörter des Suchstrings vorkommen. Das Programm gibt aber nicht
> die Datei an, in der nur der gesamte Suchstring vorkommt.
> Das Programm ignoriert im Suchstring andere eingegebene Zeichen als
> Buchstaben.
> Ziel ist, sich nur z. B. nur die Dateien anzeigen zu lassen, in denen
> der Suchstring "Linux rettet die Welt" vorkommt. Das Programm listet
> aber alle Dateien auf, in denen "Linux" vorkommt plus Datein, in denen
> "rettet" vorkommt, plus Dateien, in denen "die" vorkommt plus Dateien,
> in denen "Welt" vorkommt.
> Meine Frage war, wie man die Ausgabe der vielen fälschlich ausgegebenen
> Dateien verhindern kann. Durch Delimiter am Suchstringanfang und -ende?

Und warum benutzt Du nicht grep? OK, das geht nur, wenn der ganze Suchtext 
in einer Zeile steht. Falls das kritisch ist, wie steht's mit einem 
kleinen Perl script:

perl  -0 -e '$_ = <>; exit(not /bar\s+baz/s);' foo

gibt zb true, wenn die Datei foo die Woerter 'bar' und 'baz' 
aufeinanderfolgend enthaelt (hochstens durch white space oder new line 
getrennt).

Robert

-- 
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oO
Robert C. Helling     Elite Master Course Theoretical and Mathematical Physics
                        Scientific Coordinator
  		      Ludwig Maximilians Universitaet Muenchen, Dept. Physik
print "Just another   Phone: +49 89 2180-4523  Theresienstr. 37, rm. 440
      stupid .sig\n";   http://www.atdotde.de


Mehr Informationen über die Mailingliste linux-l