Re: [bash] Einlesen einer Datei
Am 20.01.2005 um 14:39 Uhr schrieb Nicolas Heuser <nicolas1023@gmx.net>:
> Thilo Engelbracht wrote:
> > Leider weiß ich nicht, wie ich das realisieren soll... Könnt Ihr mir
> > helfen?
>
> das kannst du mit einer sehr kleinen Änderung erledigen, einfach die Zeile:
> exec < $1
> gegen:
> egrep -v '(^$|^#)' $1 |
> tauschen.
>
> (^$|^#) erkennt Leerzeilen (^$) und Zeilen die mit # beginnen (^#). -v
> negiert die Auswahl und | leitet die Ausgabe in die while Schleife
Hallo Nicolas!
Leider funktioniert Dein Lösungsvorschlag nicht...
Ich habe, wie Du geschrieben hast, die Zeilen
exec < $1
while [ -z "$quota" ]
durch
egrep -v '(^$|^#)' $1 | while [ -z "$quota" ]
ausgetauscht.
Mein Problem habe ich aber so ähnlich gelöst:
#!/bin/bash
if [ -f $1 -a -r $1 ]
then
grep -E -v '(^$|^#)' $1 > /tmp/benutzer-info
quota=""
exec < /tmp/benutzer-info
while [ -z "$quota" ]
do
read zeile
account=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
read zeile
nkurz=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
read zeile
nlang=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
read zeile
userkw=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
read zeile
mailkw=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
read zeile
quota=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
done
rm /tmp/benutzer-info
fi
echo $account
echo $nkurz
echo $nlang
echo $userkw
echo $mailkw
echo $quota
Trotzdem würde mich mal interessieren, WARUM Dein Vorschlag nicht
funktioniert. Denn meine Lösung mit der temporären Datei finde ich nicht
gerade optimal. Deine Lösung gefällt mir deutlich besser!
Hast Du eine Idee?
Vielen Dank für Deine Mühe (natürlich auch an alle anderen, die mir
Vorschläge unterbreitet haben)!
> Nicolas
Gruß,
Thilo
--
Registered Linux user #348074 with the Linux counter
http://counter.li.org
Reply to: