[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: (OT) Hilfe zu sed?



Hallo,

Am Thu, 31 Mar 2011, Jim Knuth schrieb:
>am 31.03.11 21:59 schrieb Gerhard Schromm <gschromm-spam@arcor.de>:
[..]
>na ja, da sind schon noch`n paar Sachen drin, die da nicht rein sollen
>(ausser das /bin/false). Das ist die komplette passwd von Debian mit
>allen User (root, mysql, etc) Es müsste NUR die zeilen mit bspw.
>den Mailuser (web10p1) drinbleiben.

Mit awk:

awk 'BEGIN { FS = OFS = ":"; }
    $1 ~ /^web10p/ {
        $7 = ":userdb_mail=maildir:" $6 "/Maildir";
        print;
    }' EINGABE > AUSGABE

Das filtert auf User, deren Usernamen mit 'web10p' beginnt. Das
zwischen den // ist eine Erweiterte Regex (ERE in 'man 7 regex'),
alternativ kann man auch Strings (in "") verwenden, und auch weitere
Felder prüfen (die shell z.B.):

$1 ~ /^web(10|8)p/ && ( $7 == "/bin/false" || $7 == "/bin/bash" ) { ... }

Das filtert auf Usernamen, die mit web10p oder web8p beginnen, und die
gleichzeitig /bin/false oder /bin/bash als Shell haben ...

Awk ist bei solchen Aufgaben einfach ideal, und perl überdimensioniert.

-dnh

-- 
Freeman Dyson recounts how the RAF tried hard to locate the admin hq for
German aircraft production, found it, bombed it into oblivion... and
were horrified when German aircraft production rates went *up*
    -- Henry Spencer


Reply to: