#!/usr/bin/perl # -*- Perl -*- # Perl-Beispielscripts V1.00 - Ausgabe von /etc/passwd # Copyright (C) 1997, Ronald Blaschke - 9620411 # # $RCSfile: passwd2.pl,v $ - $Author: rbla $ # $Revision: 1.1 $ - $Date: 1997/06/13 00:59:43 $ # Formatangabe für USERS, Titelzeile format USERS_TOP = Passwd File Name Login Uid Gid Home ------------------------------------------------------------------ . # Formatangabe für USERS, normale Zeile format USERS = @<<<<<<<<<<<<<<<<<<<<<<<<< @||||||| @>>>> @>>>> @<<<<<<<<<<<<<<<<< $user_name, $login_name, $uid, $gid, $directory . open(P, "/etc/passwd"); while(
) { # Daten aus der Passwd-Datei extrahieren chomp; ($login_name, $passwd, $uid, $gid, $user_name, $directory, $shell)=split(/:/,$_, 7); ($user_name)=split(/,/, $user_name); # Benutzer nur zur Liste hinzufügen, wenn das Benutzernamen-Feld nicht leer ist if($user_name) { # Benutzer zu einem Hash-of-Hash hinzufügen foreach $entry('login_name', 'passwd', 'uid', 'gid', 'user_name', 'directory', 'shell') { ${$users{$login_name}}{$entry}=$$entry; } } } # Format auswählen $~ = "USERS"; $^ = "USERS_TOP"; # Benutzer sortiert ausgeben foreach $user(sort keys %users) { # Variablen für write() belegen foreach $entry(sort keys %{$users{$user}}) { $$entry=${$users{$user}}{$entry}; } write; } close(P);