grep Hilfe ?? Ausdruck finden
grep Hilfe ?? Ausdruck finden
Hallo zusammen,
habe ein kleines Problem mit grep
habe eine Dastei mit folgendem Aufbau
Sun Dec 2 22:10:57 xxx.xxx.xxx.xxx
Nun möchte ich gerne alle Einträge erfassen in einer txt Datei die auf den Dec 2 zutreffen.
Habe versucht mit cat *.log |grep -il Dec 2 |awk '{print $2, $3, $4}' >testlog.txt
doch dann bekomme ich eine Fehlermeldung die lautet
grep 2 Datei oder Verzeichnis nicht gefunden
auch wenn ich den Ausdruck in " Dec 2 " setze.
Was mache ich da falsch? kann man keine Ausdrücke mit Leerzeichen dazwischen suchen?
Danke und Gruß
habe ein kleines Problem mit grep
habe eine Dastei mit folgendem Aufbau
Sun Dec 2 22:10:57 xxx.xxx.xxx.xxx
Nun möchte ich gerne alle Einträge erfassen in einer txt Datei die auf den Dec 2 zutreffen.
Habe versucht mit cat *.log |grep -il Dec 2 |awk '{print $2, $3, $4}' >testlog.txt
doch dann bekomme ich eine Fehlermeldung die lautet
grep 2 Datei oder Verzeichnis nicht gefunden
auch wenn ich den Ausdruck in " Dec 2 " setze.
Was mache ich da falsch? kann man keine Ausdrücke mit Leerzeichen dazwischen suchen?
Danke und Gruß
wird noch ausgefüllt. . .
Code: Alles auswählen
beni@gargamel:~$ grep -il "Dec *2" /var/log/*
acpid
auth.log
auth.log.0
dmesg
dmesg.0
kern.log.0
mail.info
mail.log
messages
messages.0
cat schreibt über STDIN an grep, aus diesem Grund kann grep nicht die Dateien finden, da es nur eine Datei gibt, die durchgreppt wird. das "cat" ist in vielen Fällen in Zusammenhang mit Grep unnötig.
Du musst beim Pattern genau auf die Zeichen achten. Wenn du nur ein Leerzeichen angibst, dann ist da auch nur ein Leerzeichen im Muster. " *" bedeutet "mehrere Lehrzeichen"
Perl macht Spass.
Hallo habe es probiert,
aber irgendwie klappt es nicht so wie ich das möchte
möchte das ergebnis in eine textdatei schreiben und ich möchte nur das eine log auslesen weiss ja welches !!
Habe deinen obigen Befehl mal ausprobiert mit
grep -il "Dec *2" /var/log/xferlog >testlog.txt
doch dann schreibt er nur /var/log/xferlog in die txt Datei will aber die Zeilen die zutreffen in der Datei stehen haben
Was mache ich da noch falsch??
Danke
aber irgendwie klappt es nicht so wie ich das möchte
möchte das ergebnis in eine textdatei schreiben und ich möchte nur das eine log auslesen weiss ja welches !!
Habe deinen obigen Befehl mal ausprobiert mit
grep -il "Dec *2" /var/log/xferlog >testlog.txt
doch dann schreibt er nur /var/log/xferlog in die txt Datei will aber die Zeilen die zutreffen in der Datei stehen haben
Was mache ich da noch falsch??
Danke
wird noch ausgefüllt. . .
-
- Beiträge: 19
- Registriert: 01.07.2004 11:36:37
- Wohnort: Aurich
Hallo,
grep -l oder --files-with-matches gibt immer nur die Dateinamen aus. Siehe man grep.
Mit awk wiederum kann man die Suche auch gleich ohne grep durchführen.
Gruß Thorsten
grep -l oder --files-with-matches gibt immer nur die Dateinamen aus. Siehe man grep.
Mit awk wiederum kann man die Suche auch gleich ohne grep durchführen.
Code: Alles auswählen
awk '/dec *2/i {print $2, $3, $4}' *.log > testlog.txt
Gruß Thorsten
-
- Beiträge: 19
- Registriert: 01.07.2004 11:36:37
- Wohnort: Aurich
Hallo und sorry.
ich sehe gerade selbst, dass das mit awk so erst einmal nicht funktioniert.
Also ohne dem i sollte auch das erst einmal gehen.
Aber mit grep:
Gruß Thorsten
ich sehe gerade selbst, dass das mit awk so erst einmal nicht funktioniert.
Also ohne dem i sollte auch das erst einmal gehen.
Aber mit grep:
Code: Alles auswählen
grep -i "Dec *2" *.log > testlog.txt
Eigentlich sollte es aber mit dem awk funktionieren.
Code: Alles auswählen
daniel-laptop:/var/log# awk '/Dec 2/ {print $1, $2, $5}' syslog.0 | tail -10
Dec 2 avahi-daemon[4631]:
Dec 2 avahi-daemon[4631]:
Dec 2 mountd[4720]:
Dec 2 rpc.statd[4823]:
Dec 2 kernel:
Dec 2 kernel:
Dec 2 kernel:
Dec 2 kernel:
Dec 2 kernel:
Dec 2 exiting
Oh, yeah!