Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Debian GNU/Linux Reference Guide
Prev Home Next

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:

  • mawk

    • Priority: required

    • Installed-Size: 228

    • Kleiner und viel schneller – gut zur Standardinstallation

    • Compilezeit-Limitierungen bestehen

      • NF = 32767

      • sprintf buffer = 1020

  • gawk

    • Priority: optional

    • Installed-Size: 1708

    • Gr��er und reichhaltig – viele implementierte Erweiterungen

      • System V Release 4 Version von UNIX

      • Bell Labs awk

      • GNU-spezifisch


Debian GNU/Linux Reference Guide
Prev Home Next

 
 
  Published under the terms of the GNU General Public License Design by Interspire