← Back to team overview

sslug-teknik team mailing list archive

Re: Et simplere og evt. mere effektivt script

 

Tirsdag 13 januar 2004 12:18 kvad Soren Munk:
> > uden at have testet det vil jeg tro at noget lignende følgende
> > kan gøre det:
> >
> > sed '/firewall /!d;s/
> > \(MAC=\|TOS=\|PREC=\|ID=\|TTL=\|WINDOW=\|RES=\| URGP=\|munk
> > kernel\|firewall\)[^ ]*//' /var/log/firewall/iptables > /
> > var/log/firewall/iptables-mod
>
> Super svar, mange tak, men... :)
> Det virker ikke helt, nu og da ryger der en linie med `WINDOW`
> `RES` ell. `URGP` igennem, fx
> Jan 13 11:53:58 firewall IN IN=eth0 OUT=
> MAC=00:30:4f:09:86:48:00:03:6b:1a:6c:a8:08:00 SRC=xx DST=xx LEN=48
> TOS=0x00 PREC=0x00 TTL=125 ID=3794 DF PROTO=TCP SPT=1271 DPT=139
> WINDOW=16384 RES=0x00 SYN URGP=0
>
> Og andre gange gør der ikke, hvilket undrer mig lidt.

Er ovenstående 1 lang linje i original-filen?
Er blanktegnet før og efter mønstret et enkelt mellemrum? Ikke en 
tabulator eller noget andet whitespace?

> Hvad gør `[^ ]*` ?

Det er mønstret for _ikke_ (^) mellemrum ( ) nul eller flere 
forekomster (*)
Eller med andre ord nul eller flere forekomster af hvad som helst 
andet end mellemrum.

Hilsen Johnny :o)



Follow ups

References