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

Re: (OT) Hilfe zu sed?



am 01.04.11 02:54 schrieb David Haller <lists@dhaller.de>:

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 ...

danke. Kann awk auch mit Wildcards arbeiten, so z.B.:

$1 ~ /^web*p*/&&

Also das Alles mit web7p1, web8p4 etc. beachtet wird


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

-dnh



--
Mit freundlichen Grüßen,
Jim Knuth
P.S.: Bitte senden Sie KEINE HTML-Mails!
Zufallszitat:
Die meisten Menschen sind bereit zu lernen, aber nur die
wenigsten, sich belehren zu lassen. [Churchill]


Reply to: