13.3 Awk
Referenzen f�r Awk:
-
Effective awk Programming, 3. Ausgabe (O'Reilly)
-
Sed & awk, 2. Ausgabe (O'Reilly)
-
mawk(1)
und gawk(1)
-
info gawk
Kurzes Programmbeispiel (erzeugt newusers
-Kommandoeintrag):
#!/usr/bin/awk -f
# Skript zum Erzeugen einer f�r das 'newusers'-Kommando geeigneten
# Datei aus einer Datei bestehend aus Nutzer-IDs und Passw�rtern
# in der Form: Vorname Nachname Passwort
# Copyright (c) KMSelf Sat Aug 25 20:47:38 PDT 2001
# Verteilbar unter GNU GPL v 2 oder (je nach Ihrer Wahl) einer
# sp�teren Version.
# Dieses Programm wird OHNE JEGLICHE HAFTUNG vertrieben.
BEGIN {
# zuweisen der anf�nglichen UID, GID
if ( ARGC > 2 ) {
startuid = ARGV[1]
delete ARGV[1]
}
else {
printf( "Verwendung: newusers startUID Datei\n" \
" wobei:\n" \
" startUID die erste Nutzer-ID zum Hinzuf�gen ist und\n"\
" Datei eine Eingabedatei der folgenden Gestalt ist:\n" \
" Vorname Nachname Passwort\n" \
)
exit
}
infile = ARGV[1]
printf( "Erste UID: %s\n\n", startuid )
}
/^#/ { next }
{
++record
first = $1
last = $2
passwd = $3
user= substr( tolower( first ), 1, 1 ) tolower( last )
uid = startuid + record - 1
gid = uid
printf( "%s:%s:%d:%d:%s %s,,/home/%s:/bin/bash\n", \
user, passwd, uid, gid, first, last, user \
)
}
Zwei Pakete bieten POSIX-awk
in Debian an: