Hallo! On 22 Sep 2004 at 14:01 +0200, Christian Schmidt wrote:
> gerade tueftele ich an einem Wrapper fuer "vacation" herum, der ein > ~/.forward-File in folgendem Format erzeugen soll: > benutzername, "| vacation -A alias benutzername" > Der Alias stellt dabei das Konstrukt Vorname.Nachname dar; die Aliasse > aller Benutzer liegen in _einer_ Datei: > Vorname.Nachname: benutzername > Beissen sich die Variablendeklarationen mit den "intern" von awk > verwendeten? Ja. Wenn man Shellvariablen an AWK übergeben will, muss man entweder mit Quotingakrobatik arbeiten oder (komfortabler) awk die Variablen per '-v'-Parameter übergeben, der für diesen Zweck vorgesehen ist. Für deine konkrete Problemstellung würde ich etwas à la #!/bin/sh ALIASFILE="aliases.ls" awk -F": " -v USERNAME="${1}" \ '$2 ~ USERNAME { print $2 ", \"| vacation -A " $1 " " $2 "\"" }' $ALIASFILE probieren. Das '~' bewirkt ein Regex-Matching, d.h. du kannst bei Bedarf den Skriptparameter leer lassen und somit eine Gesamtübersicht bekommen oder mit einem beliebige regulären Ausdruck arbeiten. Wenn natürlich einige Benutzernamen als Teilstring von anderen vorkommen können, wäre '==' besser. Übrigens: Wenn das Leerzeichen nach dem ':' nicht garantiert ist, arbeitest du besser mit ":" an Stelle von ": " als Feldtrenner und trimmst wenn nötig das Leerzeichen in $2 mit gsub o.ä. weg. Gruß, Elmar -- [ GnuPG: D8A88C0D / 2407 063C 1C92 90E9 4766 B170 5E95 0D7F D8A8 8C0D ] ······································································· There is no sadder sight than a young pessimist.
pgpEwLmWCC4wt.pgp
Description: PGP signature