Mailinglist Archive: opensuse-de (1185 mails)

< Previous Next >
Re: Skriptfrage: Datei mit bestimmtem Inhalt finden
  • From: Andre Tann <atann@xxxxxxxxxxxx>
  • Date: Wed, 15 Sep 2010 08:04:59 +0200
  • Message-id: <201009150804.59536@xxxxxxxxxx>
David Haller, Dienstag 14 September 2010:

find . -type f -exec gawk '
BEGIN { N = NUM_WORDS; }
/wort1/ && ! words[1] { words[1]=1; }
/wort2/ && ! words[2] { words[2]=1; }
^^^^^^^^^^^^^
Verstehe ich das richtig: Du prüfst damit, ob words[2] schon gesetzt
ist. Wozu? Woher sollte es gesetzt sein?

...
/wortN/ && ! words[N] { words[N]=1; }
END {
for(i in words) { n++; }
if ( n == N ) { print FILENAME; }
}' '{}' +
^
Das beschleunigt einfach die Sache, weil awk mit seinem Skript mehrere
Files auf einmal präsentiert bekommt, richtig?

Warum muß das '{}' in Hochkomma? Ich hab mal vor einiger Zeit explizit
danach gefragt, und da meinte irgend jemand, daß Quoting hier nicht
nötig sei, weil find das {} nicht einfach durch den gefundenen
Dateinamen ersetzt, als wäre er hingeschrieben worden, sondern er wird
sozusagen schon gequotet behandelt.



HTH, noch Fragen?

Ja, vermutlich schon, muß mich aber erst noch weiter einwühlen, dauert
noch.

Danke erstmal...

--
Andre Tann

--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups