Frage zum "grep" Befehl

L

legionaer

Langsam Durchblick bekomm
Hallo Leute

Ich möchte aus einem Logfile bestimmte Fragmente auslesen und diese dann in eine andere Datei schreiben.

Mit:
Code:
grep "Userinfo:" /srv/etpro2/etpro/log | cut -d "" -f 2 >/srv/www/htdocs/confixx/html/etpro2.txt
bekomme ich folgende aussage:

1234:57Userinfo: \cg_etVersion\ET Pro, ET 2.56\cg_uinfo\77 0 30 1\g_password\none\cl_guid\57B1EE6EFBEF09230009B453BC5221DE\cl_wwwDownload\1\name\CoCoPRo\rate\7000\snaps\20\cl_anonymous\0\cl_punkbuster\1\ip\83.134.145.69:27960

Das ist ja schon sehr fein, aber ich brauche nur einen Teil dieser Zeile ...

Was ich brauche habe ich mal FETT makiert:

1234:57Userinfo: \cg_etVersion\ET Pro, ET 2.56\cg_uinfo\77 0 30 1\g_password\none\cl_guid\57B1EE6EFBEF09230009B453BC5221DE\cl_wwwDownload\1\name\CoCoPRo\rate\7000\snaps\20\cl_anonymous\0\cl_punkbuster\1\ip\83.134.145.69:27960

Kann mir einer von Euch dabei helfen ? (Nur wenns nicht zu kompliziert ist)
 
meinst du sowas
Code:
grep "Userinfo:" /srv/etpro2/etpro/log |cut -d "\\" -f 12-13
 
Oder so?
Code:
awk '/Userinfo/ -F"\" {print $12"\"$13}' /srv/etpro2/etpro/log >/srv/www/htdocs/confixx/html/etpro2.txt
 
ninguno schrieb:
meinst du sowas
Code:
grep "Userinfo:" /srv/etpro2/etpro/log |cut -d "\\" -f 12-13
Hallo
Also mein cut gestattet nur ein Char als Trennzeichen.


$ cut --version
cut (coreutils) 5.2.1

@ninguno
Mit welchem cut geht sowas?

Meinen Einzeiler mit perl oder sed spar ich mir, die Lösung steht schon weiter oben. ;)
 
cut bekommt bei "\\" nur ein char (=backslash) zu sehen, der erste backslash dient nur als shell escape-zeichen für den zweiten. ich hätt's natürlich auch so schreiben können:
Code:
cut -d '\' -f 12-13
die awk-lösung von schlaubi_fi.de funktioniert bei mir übrigens nicht, muss imho so heissen:
Code:
awk -F'\' '/Userinfo/ {print $12"\\"$13}'
oder so :D
Code:
awk -F"\\" '/Userinfo/ {print $12"\\"$13}'
 
Hallo ihr,

ja sorry ich hab das aus dem Kopf mal eben abgetipselt, hätte ich das ausgeführt wär mir das auch aufgefallen, tschuldigung :D
 
ninguno schrieb:
cut bekommt bei "\\" nur ein char (=backslash) zu sehen, der erste backslash dient nur als shell escape-zeichen für den zweiten. ich hätt's natürlich auch so schreiben können:
Code:
cut -d '\' -f 12-13
Hallo
Das ist mir schon klar, dass du den zweiten Backslash escapen willst.
Nur mein cut meckert genau das so an, wie ich sagte.
Es geht schlichtweg nicht so.
Auch ein \t wird nicht akzeptiert!
das
Code:
cut -d '\' -f 12-13
geht selbstverfreilicht.

Gruß Wolfgang
 
also bei mir gehts
Code:
$ cut --version
cut (GNU coreutils) 5.3.0
 
Vielen Dank Leute, das hat mir schon sehr geholfen !!!
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Debian Gateway

dovecot und postfix Konfiguration Problem

Debian 6 Stable: ffserver "Ungültiger Maschinenbefehl"

Modulfehler?

Zurück
Oben