Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Awk Lofile suchen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    10

    Awk Lofile suchen

    Hallo ich habe nochmals eine Frage zu AWK Programmierung.

    Szenario:
    Ich habe ein .AWK Skript : Skript 1 und ein Mehrere Logfiles in untergeordnete Verzeichnisse welche : Logfiles.log heissen.

    Wie ich diese Logfiles auswerte weiss ich bereits aber mir fehlt etwas ganz banales:

    Wie kann ich alle Logfiles suchen welche "logfiles.log" heissen, und diese danach demensprechend mit "Skript1" bearbeiten?

    Mit grep logfiles *.log und dann eine IF Abfrage?

  2. #2
    Registrierter Benutzer Avatar von Veierabend
    Registriert seit
    Oct 2007
    Ort
    Meck Pomm
    Beiträge
    243
    Ne for-Schleife wär vllt besser geeignet
    Code:
    for i in $(ls *.log | grep logfiles);
    do skript $i;
    done;
    so z.B., wenn du den Datainamen der Logs als Parameter an das Skript übergibst.
    Oder halt skript durch den Befehl ersetzen, den du auf die Logs loslassen willst.
    working as designed

  3. #3
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Ort
    Köln
    Beiträge
    16
    ... oder wie wäre es mit einem simplen "find"

    Code:
    find <Verzeichnis> -iname logfile.log -exec <Skriptname> '{}' \;

  4. #4
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    10
    Zitat Zitat von CharlyP Beitrag anzeigen
    ... oder wie wäre es mit einem simplen "find"

    Code:
    find <Verzeichnis> -iname logfile.log -exec <Skriptname> '{}' \;
    Dies müsste ich aber auf der Kommandozeile oder in einem Batchfile ausführen oder?

  5. #5
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Ort
    Köln
    Beiträge
    16
    Zitat Zitat von huckerby Beitrag anzeigen
    Dies müsste ich aber auf der Kommandozeile oder in einem Batchfile ausführen oder?
    Korrekt, "find" sucht alle Verzeichnisse unterhalb von <Verzeichnisname> nach Deinem Suchmuster "logfile.log" (egal ob in Groß- oder Kleinschrift, wegen -iname, steht für suche nach Dateiname und ignore-case) und führt den Befehl hinter -exec für jede einzelne gefundene Datei aus.

  6. #6
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    10
    Zitat Zitat von CharlyP Beitrag anzeigen
    Korrekt, "find" sucht alle Verzeichnisse unterhalb von <Verzeichnisname> nach Deinem Suchmuster "logfile.log" (egal ob in Groß- oder Kleinschrift, wegen -iname, steht für suche nach Dateiname und ignore-case) und führt den Befehl hinter -exec für jede einzelne gefundene Datei aus.

    okee.. vielen vielen dank=).
    Wenn ich über Batch oder wie auch immer das awk ausführe, muss ich das Ergebniss in ein log File schreiben.

    Mein AWK Script:
    Nun, mein AWK Skript wertet mir ein Log File aus. Und zwar wird jeweils der Wert auf 4ter Position mit $4 ausgegeben und mit der nächsten Zeile Addiert.

    Also:
    Pos.4 (BSP:450) von Zeile1 + Pos.4 (BSP 300) von Zeile2 + Pos.4 (BSP 50) von Zeile 3

    Das Ergebnis wird danach auf der Kommandozeile ausgegeben. (Hier: 800).

    Das Problem mit einem Batch File:

    Ich kann die Ausgabe des AWK Skripts nicht über ein Windows batch file einsehen.
    Ich müsst im AWK Script die Ausgabe in ein Logfile schreiben.

    Meine bisherige Ausgabe (Count ist die Summe von den verschiedenen $4:

    END {
    # printf ("total=%s\n", count);
    print count ;
    }
    Ausgabe auf Konsole : 800

    Müsste die Ausgabe um "count" in ein neues logfile zu schreiben so aussehen?
    END {
    # printf ("total=%s\n", count);
    print count > count.log ;
    }

    Er mosert mir immer der Punkt bei count ->.<- log ein Syntax fehler ist

    Wie kann man dies machen?

    danke für jede Hilfe=)

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    10
    Einfach gesagt habe ich 2 Fragen=):

    1. Wie kann ich mehrere Lofiles nach Namen suchen und einzelne Werte davon ausgeben?
    2. Wie kann ich eine Ausgabe in ein neues Log File schreiben?
    Geändert von huckerby (19.06.08 um 10:01 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Ort
    Köln
    Beiträge
    16
    Zitat Zitat von huckerby Beitrag anzeigen
    Ich kann die Ausgabe des AWK Skripts nicht über ein Windows batch file einsehen.
    Sorry huckerby - mit Windows kenn ich mich nicht echt aus - da sollte (sofern Du nicht cygwin o.ä. installiert hast) auch der von mir vorgeschlagene find nicht funktionieren. (Frage wäre für mich auch, wieso Du den Thread unter "Linux als Server" gepostet hast, wenn Du mit Windows arbeitest...?

  9. #9
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    10
    Zitat Zitat von CharlyP Beitrag anzeigen
    Sorry huckerby - mit Windows kenn ich mich nicht echt aus - da sollte (sofern Du nicht cygwin o.ä. installiert hast) auch der von mir vorgeschlagene find nicht funktionieren. (Frage wäre für mich auch, wieso Du den Thread unter "Linux als Server" gepostet hast, wenn Du mit Windows arbeitest...?

    iiiiii Nein Nein ich arbeite sicher nicht mit Windows=D...

    Ich meine es nur weil ich diesen Befehl:
    find <Verzeichnis> -iname logfile.log -exec <Skriptname> '{}' \;
    nicht im Awk ausführen kann....

    hm

Ähnliche Themen

  1. AWK Programmierung
    Von huckerby im Forum Linux Allgemein
    Antworten: 1
    Letzter Beitrag: 17.06.08, 12:35
  2. awk richtig ausquoten
    Von claudius im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 11.03.06, 12:54
  3. awk - Befehl -> Frage
    Von Sauerkraut im Forum Anwendungen Allgemein, Software
    Antworten: 1
    Letzter Beitrag: 23.09.04, 17:42
  4. grep und awk
    Von emwe im Forum Tipps und Tricks
    Antworten: 5
    Letzter Beitrag: 16.09.04, 20:05
  5. Problem mit awk
    Von rthill im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 29.04.04, 17:43

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •