• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Anwendung des cut Befehles ...

rara

Newbie
Hi zusammen,

versuche aus einer Log

(Beispielzeile:
>>Feb 20 15:48:01 corinnis kernel: guefz-fw-DROP-TCPIN=ppp0 OUT= MAC= SRC=213.196.206.191 DST=111.111.111.222 LEN=52 TOS=0x00 PREC=0x00 TTL=122 ID=63467 DF PROTO=TCP SPT=3147 DPT=135 WINDOW=32767 RES=0x00 SYN URGP=0 OPT (020405AC0103030001010402)<<)

die Spalte "SRC" mit dem cut Befehl zu cutten (*g*) und anschließend mit dem sort Befehl die IPS nummerisch zu sortieren. Bis vorhin bin ich folgender Überlegung nachgegangen:

--> cut -d " " -f "9" log.txt | sort -rn

Das Problem bei der mir aufkommenden Befehlszeile ist, dass er mir noch anderen "müll" anzeigt, was eigentlich nicht sein dürfte.
Eigentlich sollte mir die CHAR Zeichenfolge "SRC=IP" angezeigt werden.

Hat einer von euch eine Idee :?:

Danke im Voraus
rara :D
 

ninguno

Member
also mit der beispielzeile gehts ja so. schauen die anderen zeilen auch so aus? was kommt denn für ein müll?
 
OP
R

rara

Newbie
Das z.B. »etc/gconf/gconf.xml.mandatory«, genau wissen tue ich das nicht .
Was für eine Überlegung hattest du wenn ich fragen darf ?

...
 

ninguno

Member
da steht bei mir nix drinnen. ist ne gnome datei oder? sind jetzt alle zeilen nach dem selben schema aufgebaut oder nicht?
 
OP
R

rara

Newbie
Nach einem selben Schema aufgebaut ? Du meinst ob ich die Ausgabe a'la "SRC=111.111.111.222" erhalten habe ?

Ne ..., habe die nicht dazugehörigen Zeilen per Hand gelöscht, was eigentlich befehlmäßig nicht das Wahre ist ...
 
OP
R

rara

Newbie
Ich bin nicht gerade ein Programmierer, aber kann es sein, dass Variablen erstellt werden müssen, für die einzelnen IP-Zellen "SRC=w.x.y.z", die dann als "Gruppen Variabeln" abgespeichert werden und dann als Gruppen Variabeln" abgefragt werden ??
 
Code:
echo "Feb 20 15:48:01 corinnis kernel: guefz-fw-DROP-TCPIN=ppp0 OUT= MAC= SRC=213.196.206.191 DST=111.111.111.222 LEN=52 TOS=0x00 PREC=0x00 TTL=122 ID=63467 DF PROTO=TCP SPT=3147 DPT=135 WINDOW=32767 RES=0x00 SYN URGP=0 OPT (020405AC0103030001010402)" | perl -pe 's/.*SRC=([\d\.]+).*/$1/'
 
OP
R

rara

Newbie
Danke, da erscheint nur eine Zeile, was ist wenn ich eine Datei auslesen möchte ? Habe versucht anstatt der Zeile die Datei auszulesen hat aber nicht geklappt.
 

TeXpert

Guru
rara schrieb:
Danke, da erscheint nur eine Zeile, was ist wenn ich eine Datei auslesen möchte ? Habe versucht anstatt der Zeile die Datei auszulesen hat aber nicht geklappt.

Code:
 perl -pe 's/.*SRC=([\d\.]+).*/$1/' datei

wenn in jeder Zeile das passende src=foo drinsteht..,
 
Und als "sed" Fan:

Code:
echo ... | sed -e 's/^.*SRC=//' -e 's/ .*$//'
(Da ist ein "Leerzeichen" vor .*$ oben)

Haveaniceday
 

regexer

Advanced Hacker
rara schrieb:
und anschließend mit dem sort Befehl die IPS nummerisch zu sortieren. Bis vorhin bin ich folgender Überlegung nachgegangen:

--> cut -d " " -f "9" log.txt | sort -rn
Ein Tipp zum Thema Sortieren: Weil die IP-Adresse punkte enthält und keine führenden Nullen hat, reicht ein einfacher numerischer sort nicht aus. So sollte es funktionieren:
Code:
 ... | sort -t. -k1,1n  -k2,2n -k3,3n -k4,4n
 
Oben