Hi
Ich bin grad etwas ratlos. Aus einer Logfile will ich alle Zeilen die mit 10.0.0.1 beginnen Löschen/Ignorieren und in eine File /tmp/cleared.log ausgeben. So das ich nur Zeilen habe die nicht mit 10.0.0.1 beginnen. Im Manual von SED habe ich nichts gefunden :/
SED AWK?
- minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
SED AWK?
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
-
- Beiträge: 65
- Registriert: 16.07.2004 12:35:31
- Wohnort: Karlsfeld
-
Kontaktdaten:
Re: SED AWK?
Morgen
ist nicht was du suchst?
cya Tom
ist nicht
Code: Alles auswählen
grep -v "^10\.0\.0\.1" <logfile> > /tmp/cleared.log
cya Tom
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Re: SED AWK?
Das mit Grep ist natürlich die offensichtlicherere Lösung; aber nur um zu beweisen dass du nicht Manuals lesen kannst
Erklärung:
Per Default gibt Sed alles was im Input ist auch aus; ausser was bearbeitet wird.
/asdf/: bearbeite alle Zeilen die die Regexp asdf matchen
d: Bearbeitung besteht in Löschen dieser Zeilen
Das Zeilen-Matching mit /asdf/ geht mit allen sed-Befehlen; also z.B. auch mit dem bekannten sed s/vorher/nachher/ - angewendet nur auf Zeilen mit asdf drinne: sed /asdf/ s/vorher/nachher/
MfG Peschmä
Code: Alles auswählen
sed '/^10\.0\.0\.1/ d' < input > output
Per Default gibt Sed alles was im Input ist auch aus; ausser was bearbeitet wird.
/asdf/: bearbeite alle Zeilen die die Regexp asdf matchen
d: Bearbeitung besteht in Löschen dieser Zeilen
Das Zeilen-Matching mit /asdf/ geht mit allen sed-Befehlen; also z.B. auch mit dem bekannten sed s/vorher/nachher/ - angewendet nur auf Zeilen mit asdf drinne: sed /asdf/ s/vorher/nachher/
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
Re: SED AWK?
Vollständigkeitshalber:
Code: Alles auswählen
awk '!/^10\.0\.0\.1/' < $LOG > $NEW_LOG
Re: SED AWK?
Je nachdem wie groß das Logfile ist, könnte man nun mal mit time messen, was am performantesten ist (awk, sed oder grep)?
Oh, yeah!
Re: SED AWK?
Ich schätze die Reihenfolge ist immer: grep, sed, awk.Duff hat geschrieben:Je nachdem wie groß das Logfile ist, könnte man nun mal mit time messen, was am performantesten ist (awk, sed oder grep)?
... aber Performance sollte man nie nach vorne stellen. Viel entscheidender ist Klarheit und Portabilität.
In meinen Augen sagt das alles.peschmae hat geschrieben:Das mit Grep ist natürlich die offensichtlicherere Lösung
Use ed once in a while!