sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #87546
Re: bash - grep og regular expression
On Wed, 22 Mar 2006 12:39:12 +0100
"Mogens Melander" <mogens@xxxxxxxxxxxxx> wrote:
> Hejsa,
>
> Dagens opgave går ud på, i bash-script, at trække ip-adressen ud af
> følgende log entries.
>
> Mar 19 12:45:48 styx sshd[19796]: Failed password for illegal user
> newsroom from 213.133.99.19 port 33561 ssh2 Mar 19 12:45:48 styx
> sshd[19797]: Illegal user brian from 213.133.99.19
>
> Regulære udtryk har aldrig været min stærke side, og jeg har en klar
> fornemmelse af at denne opgave løses bedst af sådanne. Jeg kan klare
> det med en kombination af grep|cut, men er overbevist om at det kan
> klares enklere/mere elegant med det rette udtryk.
>
Med grep (egrep) kan det f.eks. gøres sådan her:
egrep 'sshd.* Failed password for illegal'
fil_der_skal_undersøges|egrep -o -e '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
Med sed kan en løsning være:
sed -e '/\(.*sshd.* Illegal user .* \)\(.*\)/!d' -e
's/.* \([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\)/\1/g' fil_der_skal_undersøges
Mvh
Jesper K. Pedersen
References