Michael W.: Wörter Zählen

Beitrag lesen

Hallo,

um es euch zu vereinfachen euch in das problem rein zu denken, versuche ich jetzt mal mein situation genau zu beschreiben:
ich arbeite jetzt in einer firma die ein riesieges netzwerk hat
von frankfurt bis Kölle und weiter, insgesamt 300 aussenstellen und alle sind sie miteinander verbunden.
jeder PC der an diesem netzwerk hängt muss sich mit seinem usernamen anmelden. darauf folgt ein logon-script in dem eine hardwareerkennung durchläuft. diese hardware erkennung wird in einem bestimmten pfad als %user%.log (wenn der user Michael heisst dann heisst die datei logischer weisse michael.log) abgespeichert.
in frankfurt ist der hauptsitz der administratoren die jetzt wissen wollen wieviele pentium und amd athlon in allen 300 aussenstellen stehen. Das Heisst man soll bequem über das admin menü einzelen user einzelne Server und auch das komplette netz auslesen können.

das passiert mit einem shell script (...), so gelangen die einzelnen dateien in frankfurt
jetzt kommt php an die reihe:
zunächst einmal ist das schwirigste alle dateien in eine datei zu bekommen.

sprich im ordner /user befinden sich dann alle %user%.log (es gibt kein doppelt !!)
"user1.log"
"user2.log"
"user3.log"

sollen alle in "gesamtauswertung.log"

das ist punkt 1:
wie schreibe ich mehrere dateien in eine datei (hintereinander) ??

punkt 2:
ich zeige euch jetzt mal den wichtigsten abschnitt der datei, die ensteht wenn sich die einzelenen user anmelden:

PROCESSOR----------------------------------------------------------------------
                               Model: AT clone
                           Processor: Intel Pentium with MMX-167
                       CPU Vendor ID: GenuineIntel
                    CPU Family Level: 5
                     CPU Model Level: 4
                  CPU Stepping Level: 3
               Enhanced Virtual Mode: Yes
             Pentium Style registers: Yes
             Machine Check Exception: Yes
               CMPXCHG8B instruction: Yes
                MMX (MultiMedia eXt): Yes
                    Pentium FDIV bug: No
                         Coprocessor: Internal
             Extended BIOS data area: Yes, at 9F80 (638k)
                  DMA Channel 3 used: No
                  Slave 8259 Present: Yes
                     Real Time Clock: Yes
                        I/O Bus Type: PCI (ver 2.16)

Davon wiederum ist der wichtigste punkt:
Processor: Intel Pentium with MMX-167

wenn ich jetzt (und jetzt kommen wir zum problem und zum grund der geschcihte) nach Pentium suche dann findet das script schonmal 2 wörter (mehr aber auch nicht):

Processor: Intel Pentium with MMX-167
Pentium Style registers: Yes

also müssen wir vor dem zählen der pentiums, erstmal die zeilen suchen die "Processor:" beinhalten und da ist es sehr sehr schlecht das es einen "Coprocessor:" gibt...

Ich habe hier ein script, dass mir zeilen raussucht:

<?php
$a = "Processor:";
$datei = file('report.log');
for($i=0;$i<count($datei);$i++)
  {
  if(eregi($a,$datei[$i])) $gz1 = $datei[$i];
  }
?>

Das script findet aber immer nur das letzte wort in der .log file- d.h. Coprocessor ...

und ausserdem heisst das dann auch wenn ich mehrere processoren in der text-datei stehen hab, dass mir nur die letzte ausgegeben wird.

aber ich will doch eine auflistung aller prozessoren haben.

Punkt 2 ist also:
welches php script macht mir eine auflistung über mehrere worte hinweg. d.h.

meine text.txt:
das ist zeile1 mit begriff1
das ist zeile2 mit begriff2
das ist zeiel3 mit begriff1

das script soll mir alle zeilen geordnet ausgeben:
das ist zeiel1 mit begriff1
das ist zeiel3 mit begriff1

das ist zeile2 mit begriff2

so und jetzt kommen wir zum letzten punkt:

ein 3. script (was am ende alles in eins rein soll), soll mir zählen wie oft begriff1 jetzt vorkommt:
dann steht da am ende

anzahl    Überbegriff
2           Begriff1
1           Begriff2
.
.
.

und jetzt nochmal alle punkte:

punkt1:
mehrere txt oder .log dateien in eine gesamt.log datei zu schreiben.

punkt2:
ein script, dass mir beliebige begriffe einzelner zeilen sucht und geoordnet ausgibt (ausgabe kann man ja dann mit echo varieren)

punkt3:
der wortzähler der mir die anzahl eines beliebigen wortes in einer variablen speichert ($anzahl_a , $a =begriffa) ...

Ich hoffe sehr dass ich meine problem nicht zu knapp geschildert habe und dass ihr mir helfen könnt.