mit grep letzten IP-Eintrag einer Datei

R

ron9999

Grünschnabel
Hallo Leute,
guten Morgen aus Österreich, bin das erste mal hier.
Ich möchte aus einer log-Datei den letzten Eintrag einer IP auslesen.
eine Zeile unter anderem sieht so aus:

@4000000047f33a9c1028313c tcpserver: ok 52316 0:213.47.208.162:3495 :80.121.13.241::49312

um jetzt die IP 80.121.13.241 auszulesen verwende ich einmal grep mit dem Befehl:

grep "80\.121\." /var/log/gnudip/current > /etc/tinydns/root/tmp1

der schaufelt mir alle Zeilen wo 80.121 vorkommt in das File tmp1.
wie filter ich jetzt die letzte Zeile mit dem Vorkommen von 80.121. und den Rest der Ip 13.241

pseudo:
gehe zur letzten Zeile
finde den Start von :80 +1
lese Byte für Byte von Sart bis aufkommen von :
oder gibt es was Besseres?
Kann mir bitte jemand helfen
danke im Voraus
Ron
 
Nutze doch einfach egrep und geh mit einer Regular Expression durch, die von hinten anfängt zu suchen und nach dem ersten vorkommen des gesuchten Strings abbricht.
 
Code:
grep "80\.121\." /var/log/gnudip/current | tail -1 > /etc/tinydns/root/tmp1

HTH Aqualung
 
vielen Dank!
@bitmuncher
ich habe keine option gefunden um in grep reverse zu suchen
.
@Aqualung
danke für den Code ich kannte den Befehle tail nicht
jetzt habe ich in tmp1 nur mehr eine Zeile mit der IP,
hat vielleicht noch jemand den Code im Ärmel wie ich die IP Filter.
lg
Ron
 
Zuletzt bearbeitet:
Code:
grep "80\.121\."   /var/log/gnudip/current |  tail -1 | cut -d: -f5

vorraussetzend, dass : ein verwendbarer LFS ist.

Gruß Aqualung
 
danke Aqualung
war super.
lg Ron
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

@bitmuncher, danke hab ich nicht geschnallt.
Sollte ich regexp öfters als bei dieser Aufgabe brauchen, werde ich mich näher befassen und lernen.
lg Ron
 
Zuletzt bearbeitet:
Zurück
Oben