SED AWK?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

SED AWK?

Beitrag von minimike » 22.01.2009 01:33:37

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 :/
"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

BloodyNewbie
Beiträge: 65
Registriert: 16.07.2004 12:35:31
Wohnort: Karlsfeld
Kontaktdaten:

Re: SED AWK?

Beitrag von BloodyNewbie » 22.01.2009 01:44:55

Morgen

ist nicht

Code: Alles auswählen

grep -v "^10\.0\.0\.1" <logfile> > /tmp/cleared.log 
was du suchst?

cya Tom

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: SED AWK?

Beitrag von peschmae » 22.01.2009 06:24:44

Das mit Grep ist natürlich die offensichtlicherere Lösung; aber nur um zu beweisen dass du nicht Manuals lesen kannst :P

Code: Alles auswählen

 sed '/^10\.0\.0\.1/ d' < input > output
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ä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

yeti

Re: SED AWK?

Beitrag von yeti » 22.01.2009 10:02:34

Vollständigkeitshalber:

Code: Alles auswählen

awk '!/^10\.0\.0\.1/' < $LOG > $NEW_LOG

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: SED AWK?

Beitrag von Duff » 22.01.2009 11:40:01

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!

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: SED AWK?

Beitrag von Meillo » 22.01.2009 12:21:30

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)?
Ich schätze die Reihenfolge ist immer: grep, sed, awk.

... aber Performance sollte man nie nach vorne stellen. Viel entscheidender ist Klarheit und Portabilität.
peschmae hat geschrieben:Das mit Grep ist natürlich die offensichtlicherere Lösung
In meinen Augen sagt das alles.
Use ed once in a while!

Antworten