Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Doppelte Einträge mit grep oder awk oder sed suchen oder Suchanfragen ausschließen

  1. #1
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Stuttgart
    Beiträge
    118

    Doppelte Einträge mit grep oder awk oder sed suchen oder Suchanfragen ausschließen

    Hi Leute,

    ich möchte die Squidlogdateien mit einem Script auslesen. Nun sind da aber auch doppelte www Einträge drinne. Weiß jemand wie man die doppelten Einträge auschließen kann bzw wie man mit grep Suchkriterien ausschließen kann???

    less /var/.../ | grep 'http:' | awk '{print $7} lautet mein Befehl

    Welche Tools sind dafür besser geeignet grep, sed oder awk????


    Gruß Hardwarerosti

  2. #2
    Registrierter Benutzer Avatar von phoen][x
    Registriert seit
    Jun 2002
    Ort
    Hildesheim
    Beiträge
    560
    doppelte www eintrage? also ein und dieselbe zeile zwei mal? dann "cat logdatei | sort | uniq"

    -phoen][x-
    (*'-._.: System Stats :._.-'*)
    2400MHz Pentium 4 HT w/ 1024MB Dual-channeled DDRAM; ATI Radeon 9700Pro w/ 128 MB DDRAM; WinTV Go; Intel EtherExpress Pro 1000 onboard; Maxtor 160GB @ 7200 RPM, Serial-ATA; Maxtor 80GB @ 5400 RPM, UDMA-100; Sony 24/10/40x CD-RW Drive; Pioneer 16x DVD Drive

  3. #3
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Stuttgart
    Beiträge
    118
    Aha, habs gerade mal ausgetestet. Was macht denn eigentlich der Befehl genau, wie ich jetzt gesehen habe werden mir die doppelten Einträge nun alle aufgelistet, oder???
    Wie kann ich nun aber sagen, das, wenn er mir eine neue logdatei generiert aus einer alten ..... > neuelogdatei das er die doppelten Eniträge nicht berücksichtigen soll???
    Berücksichtigt er auch Einträge wie z.B www.heise.de/news
    www.heise.de/gif11.gif
    als Beispiel???? Weil das sind in meinen Augen auch "gleiche" EInträge. Anstelle von diesen vielen www.heise.de/... möchte ich nur einen Eintrag mit www.heise.de

    Gruß Hardwarerosti

  4. #4
    Registrierter Benutzer Avatar von phoen][x
    Registriert seit
    Jun 2002
    Ort
    Hildesheim
    Beiträge
    560
    das |sort|uniq entfernt nur komplett identische, doppelte zeilen.
    also macht es nicht aus www.heise.de und www.heise.de/news einen eintrag, sondern laesst zwei stehen.

    poste doch einfach mal ein stueck von der logdatei, ich kann mit da so nichts drunter vorstellen (hab noch nie squid gebraucht).

    -phoen][x-
    (*'-._.: System Stats :._.-'*)
    2400MHz Pentium 4 HT w/ 1024MB Dual-channeled DDRAM; ATI Radeon 9700Pro w/ 128 MB DDRAM; WinTV Go; Intel EtherExpress Pro 1000 onboard; Maxtor 160GB @ 7200 RPM, Serial-ATA; Maxtor 80GB @ 5400 RPM, UDMA-100; Sony 24/10/40x CD-RW Drive; Pioneer 16x DVD Drive

  5. #5
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Stuttgart
    Beiträge
    118
    Hier mal einige Auszüge

    http://www.heise.de/tp/pict/eck3_h.gif
    http://www.heise.de/tp/pict/eck4_h.gif
    http://www.heise.de/tp/pict/r_y.gif
    http://www.heise.de/tp/deutsch/icons/redakt2.gif
    http://www.heise.de/tp/deutsch/icons/heise2.gif
    http://www.heise.de/tp/deutsch/inhalt/te/12905/1.html
    http://heise.ivwbox.de/cgi-bin/ivw/C.../12905/1.html?
    http://www.heise.de/ivw-bin/ivw/CP/t...e/12905/1.html
    http://www.heise.de/RealMedia/ads/ad...553317675/Top1
    /468-eigen-he-heisemobil/mobil_urlaub2.gif/3231332e32332e36342e3938?
    http://www.heise.de/RealMedia/ads/Cr...l/mobil_urlaub
    2.gif
    http://www.heise.de/tp/pict/tpneu.gif
    http://www.heise.de/tp/deutsch/status/te.gif
    http://www.heise.de/RealMedia/ads/ad...716247/Middle/
    1x1-bei-he-zaehler-tp/zaehler.html/3231332e32332e36342e3938?
    http://www.heise.de/tp/pict/start.gif
    http://www.heise.de/tp/deutsch/pict/such.gif
    http://www.heise.de/tp/deutsch/pict/sub.gif
    http://www.heise.de/tp/deutsch/pict/forum.gif
    http://www.heise.de/tp/deutsch/pict/imp.gif
    http://www.heise.de/tp/pict/end.gif

    [...]

    http://img.web.de/c/00/17/4A/35.60
    http://img.web.de/c/00/17/A8/9D.60
    http://img.web.de/web/img/v4/club/hp...on_30_anim.gif
    http://img.web.de/c/00/17/3D/8C.60
    http://img.web.de/web/img/v4/home/email_icon_60.gif
    http://img.web.de/web/img/v4/cvghome/amex_icon_30.gif
    http://img.web.de/web/img/v4/cvghome...de_icon_30.gif
    http://img.web.de/web/img/v4/digital...il_icon_30.gif
    http://img.web.de/web/img/v4/cvghome/diba_icon_30.gif
    http://img.web.de/ivw/CP/webde/homepage/?
    http://freemail.web.de/online/l/
    http://freemailng0603.web.de/online/?
    http://freemailng0603.web.de/online/frame.htm?
    http://freemailng0603.web.de/online/menu.htm?
    http://img.web.de/web/img/v4/mail/nav/pfeil_blau_u.gif
    http://img.web.de/web/img/v4/mail/nav/nav_kachel.gif
    http://img.web.de/web/img/v4/mail/nav/pfeil_blau.g

    Hoffe, das wird richtig dargestellt.

  6. #6
    Registrierter Benutzer Avatar von phoen][x
    Registriert seit
    Jun 2002
    Ort
    Hildesheim
    Beiträge
    560
    und du willst immer nur den ersten server?
    also www.heise.de, heise.ivwbox.de, img.web.de, etc?

    -phoen][x-
    (*'-._.: System Stats :._.-'*)
    2400MHz Pentium 4 HT w/ 1024MB Dual-channeled DDRAM; ATI Radeon 9700Pro w/ 128 MB DDRAM; WinTV Go; Intel EtherExpress Pro 1000 onboard; Maxtor 160GB @ 7200 RPM, Serial-ATA; Maxtor 80GB @ 5400 RPM, UDMA-100; Sony 24/10/40x CD-RW Drive; Pioneer 16x DVD Drive

  7. #7
    Registrierter Benutzer Avatar von phoen][x
    Registriert seit
    Jun 2002
    Ort
    Hildesheim
    Beiträge
    560
    falls ja, dann probiers mal hiermit:
    `cat logdatei | gawk -F "/" '{printf("%s\n",$3)}' | sort | uniq`
    (*'-._.: System Stats :._.-'*)
    2400MHz Pentium 4 HT w/ 1024MB Dual-channeled DDRAM; ATI Radeon 9700Pro w/ 128 MB DDRAM; WinTV Go; Intel EtherExpress Pro 1000 onboard; Maxtor 160GB @ 7200 RPM, Serial-ATA; Maxtor 80GB @ 5400 RPM, UDMA-100; Sony 24/10/40x CD-RW Drive; Pioneer 16x DVD Drive

  8. #8
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Stuttgart
    Beiträge
    118
    Super, funktioniert sehr gut.
    Aber kannst mir vielleicht ganz gut noch schreiben was dieser Befehl genau macht, damit ich ihn verstehe und damit auch selber arbeiten kann??

    Wäre echt super, danke schonmal

    Gruß Hardwarerosti

  9. #9
    Registrierter Benutzer Avatar von phoen][x
    Registriert seit
    Jun 2002
    Ort
    Hildesheim
    Beiträge
    560
    Okay hier hast du eine Beschreibung:

    "cat logdatei" - gibt die Logdatei auf dem Bildschirm aus. Mit dem "|" lenke ich die Ausgabe in das gawk

    "gawk -F "/" '{printf("%s\n",$3)}'".
    gawk arbeitet die Ausgabe von cat jetzt Zeile um Zeile ab. das -F "/" ist der field seperator. Lass mich kurz anhand eines Beispiels erklaeren wozu der gut ist:

    Die ganze Zeile die awk bekommt, wird in $0 gespeichert. Dann faengt awk am anfang der Zeile an und sucht bis es einen field seperator findet. es packt alles was es bis zum ersten field seperator gefunden hat in $1. Danach faengt es ein neues Feld an (naemlich $2) und packt wieder alles was es bis zum naechsten field seperator findet in das neue Feld. Und so weiter und so weiter, bis die Zeile abgearbeitet ist.

    Beispiel:
    "http://www.heise.de/tp/pict/eck3_h.gif"

    Bei dieser Zeile wurden wir folgende Variablen erhalten:
    $0 = "http://www.heise.de/tp/pict/eck3_h.gif"
    $1 = "http:"
    $2 = ""
    $3 = "www.heise.de"
    $4 = "tp"
    $5 = "pict"
    $6 = "eck3_h.gif"

    **Btw, "cut -d '/' -f 3" wuerde genau das gleiche tun (aber mit awk kann man noch viel mehr anstellen)

    Nachdem awk fertig ist, also nur noch die Adressen der Server uebrig sind, schicke ich das ganze zu "sort" - dieses Programm sortiert den gesamten output, dass ist noetig damit "uniq" funktioniert (denn uniq kann nur mit sortierten quellen umgehen). "uniq" kommt vom englischen unique (heisst "einzigartig") und macht auch genau das: es entfernt alle Zeilen die doppelt vorkommen.

    Hoffe dir geholfen zu haben,
    -phoen][x-
    (*'-._.: System Stats :._.-'*)
    2400MHz Pentium 4 HT w/ 1024MB Dual-channeled DDRAM; ATI Radeon 9700Pro w/ 128 MB DDRAM; WinTV Go; Intel EtherExpress Pro 1000 onboard; Maxtor 160GB @ 7200 RPM, Serial-ATA; Maxtor 80GB @ 5400 RPM, UDMA-100; Sony 24/10/40x CD-RW Drive; Pioneer 16x DVD Drive

  10. #10
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Stuttgart
    Beiträge
    118
    Aaaaaaaaahhhhhhhhhhha
    Sehr gut, danke Dir
    Jetzt kann ich die anderen logs auch bearbeiten.

    Merci

    Gruß Hardwarerosti

  11. #11
    Registrierter Benutzer Avatar von phoen][x
    Registriert seit
    Jun 2002
    Ort
    Hildesheim
    Beiträge
    560
    War das jetzt eher das ironische "na klar, da haett ich auch selber drauf kommen koennen " aha oder war es ein ernstgemeintes?

    -phoen][x-
    (*'-._.: System Stats :._.-'*)
    2400MHz Pentium 4 HT w/ 1024MB Dual-channeled DDRAM; ATI Radeon 9700Pro w/ 128 MB DDRAM; WinTV Go; Intel EtherExpress Pro 1000 onboard; Maxtor 160GB @ 7200 RPM, Serial-ATA; Maxtor 80GB @ 5400 RPM, UDMA-100; Sony 24/10/40x CD-RW Drive; Pioneer 16x DVD Drive

  12. #12
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Stuttgart
    Beiträge
    118
    Weißt du zufällig auch, wenn ich in eine separate Datei ich sage mal 2 EInträge aus eine Datei raussuchen und in die neue reinschreiben.

    Beispiel:

    1026709973.670 300 192.168.10.26 TCP_MISS/200 286 GET http://www.heise.de/Rea
    lMedia/ads/adstream_lx.ads/www.heise.de/Homepage/1050545142/Middle/1x1-bei-he-za
    ehler-hp/zaehler.html/3231332e32332e36342e3938? - DIRECT/193.99.144.71 image/gif
    1026709973.702 434 192.168.10.26 TCP_MISS/200 8425 GET http://www.heise.de/qc
    /heise/telepolis/02_29/tp0207_468_29.gif - DIRECT/193.99.144.71 image/gif
    1026709973.727 262 192.168.10.26 TCP_REFRESH_HIT/304 176 GET http://www.heise
    .de/icons/ho/1pix.gif - DIRECT/193.99.144.71 -
    1026709973.775 103 192.168.10.26 TCP_IMS_HIT/304 208 GET http://www.heise.de/
    RealMedia/ads/Creatives/137-eigen-he-emedia-buecher/6966_anonym2_137.gif - NONE/
    - image/gif

    Ich möchte hier jetzt noch in eine neue Datei die IP adresse ebenfalls mit reinschreiben. Habe dazu folgenden Befehl genutzt.

    less /var/log/squid/access.log | grep 'http://' | awk '{print $7}' | gawk -F "/" '{printf("%s\n",$3)}' | sort | uniq > /var/log/squid/url_liste

    hier müsste ich jetzt awk '{print $3}' reinschreiben, denke ich mal, aber weiß nicht wie ich es verknüpfen soll.

    Mein Ziel: die IP (steht an der 3. Stelle im Listing) und die von eben schon erwähnte urls.

    Gruß Hardwarerosti

  13. #13
    Registrierter Benutzer
    Registriert seit
    May 2002
    Ort
    Stuttgart
    Beiträge
    118

    Wink

    zu vorhin.

    Das war ein erstgemeintes "Aha", so wie "ach so geht das, gut zu wissen, und wieder etwas schlauer geworden", selber wäre ich da nicht drauf gekommen, da mir die mans etwas zu umständlich sind und mir hier einfach die Zeit fehlt seitenweise mans zu lesen, da ich derzeit an Firewallstrategien arbeite

Lesezeichen

Berechtigungen

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