13.3 Awk
Riferimenti per Awk:
-
Effective awk Programming, Terza edizione (O'Reilly)
-
Sed & awk, Seconda edizione (O'Reilly)
-
mawk(1)
e gawk(1)
-
info gawk
Esempio di programma breve (crea delle voci di account per
newusers
):
#!/usr/bin/awk -f
# Script per creare un file utilizzabile con il comando 'newusers',
# a partire da un file che contiene user IDs e passwords sotto forma di:
# Nome Cognome password
# Copyright (c) KMSelf Sat Aug 25 20:47:38 PDT 2001
# Distributed under GNU GPL v 2, or at your option, any later version.
# This program is distributed WITHOUT ANY WARRANTY.
BEGIN {
# Assign starting UID, GID
if ( ARGC > 2 ) {
startuid = ARGV[1]
delete ARGV[1]
}
else {
printf( "Usage: newusers startUID file\n" \
" where:\n" \
" startUID is the starting userid to add, and\n" \
" file is an input file in form:\n" \
" first_name last_name password\n" \
)
exit
}
infile = ARGV[1]
printf( "Starting 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 \
)
}
Due sono i pacchetti che forniscono il POSIX awk
in Debian:
-
mawk
-
Priorit�: richiesto
-
Dimensioni da installato: 228
-
Pi� piccolo � molto pi� veloce — ottimo per l'installazione base
-
Esiste un limite di tempo di compilazione
-
NF = 32767
-
sprintf buffer = 1020
-
gawk