bash - aus zeile 2 variablen auslesen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

bash - aus zeile 2 variablen auslesen

Beitrag von cordovan » 18.10.2004 13:51:23

hi!

ich steh vor dem problem einige user in mein system übernehmen zu müssen.

ich hab ein file erhalten mit zb:

user@domain passwort

wie schaffe ich es eine variable 1 und eine varible 2 zu bekommen wo in einer nur der string des users und in der zweiten nur der string des passwortes drin ist?

hab mich jetzt mit sed gespielt schaffe es aber irgendwie nicht ...

thx4help

ernohl
Beiträge: 1248
Registriert: 04.07.2002 08:11:56
Wohnort: HL

Beitrag von ernohl » 18.10.2004 13:57:56

Code: Alles auswählen

VARIABLE_1=`awk -F\@ '{print $1}' file`
VARIABLE_2=`awk '{print $2}' file`
Gruß
ernohl

Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

Beitrag von cordovan » 18.10.2004 15:04:28

danke für die schnelle antwort

hab es nun in folgendes verwandelt ein teil der aufgabe besteht auch darin forwards einzurichten:

forward=`awk '{print $1}' clean`

for test in `awk '{print $2}' clean`
do
tmp_user=$test
mkdir /home/cordovan/skripts/tmp/$tmp_user;
cd /home/cordovan/skripts/tmp/$tmp_user;
touch .forward
echo "$forward" > .forward
done

er legt mir die .forward datei schön an und schreibt rein, nur stehen plötzlich in der forward alle email addressen drin .... braucht es eine zweite schleife?

thxhelp

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 18.10.2004 16:07:58

Du kannst das ganze einfacher mit dem Bash/POSIX-Befehl read lösen:

Code: Alles auswählen

#!/bin/sh
while read forward user; do
  mkdir -p /home/cordovan/tmp/$user
  echo $forward > /home/cordovan/tmp/$user/.forward
done < DATEI_MIT_EINTRAEGEN
touch ist unnötig, ">" legt die Datei an, wenn sie nicht existiert, "-p" legt auch .../tmp an, wenn nötig.

Siehe auch "help read" (nicht "man read")

Benutzeravatar
labor78
Beiträge: 163
Registriert: 13.07.2004 10:29:58

Beitrag von labor78 » 18.10.2004 19:30:10

Joghurt hat geschrieben:Siehe auch "help read" (nicht "man read")
Das mit `help read' wusste ich auch noch nicht :D Hat mich immer schon genervt, das immer das komplette BASH-Manual aufgerufen wird bei `man eingebauter_shell_befehl'.
May the source be with you...

Antworten