• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Shell-Script File auslesen

Hallo Zusammen,

Nachdem ich schon kräftig gesucht habe und mir die gefundenen Beiträge nicht wirklich weiter gehoflen haben, werde ich nun meine Frage posten.

Ich habe leider erst sehr sehr wenig erfahrung mit Shell-Scripts.

Was soll es können:
Es besteht aus zwei Files.

Im ersten File sind alle Pfade und berechtigungen hinterlegt.
#File1: pfade.data
/home/virtual/seiteXX/var/www/html/;admin123:admin123
/home/virtual/seiteYY/var/www/html/;admin124:admin124

Das zweite File soll nun die Seiten im "pfade.data"-File updaten. Das heisst, den inhalt aus einem Ordner in die entsprechenden Pfade kopieren / überschreiben und danach die berechtigungen entsprechend setzen. Nun habe ich zwei Probleme:
1. Ich schaffe es nicht, das File linie für linie zu lesen. Die gefundenen Beiträge haben mir nicht wirklich weiter geholfen.

Mein Versuch scheiterte:
cat pfade.data | while read line;
do echo `echo ${LINE}`
done

2. Wie kann ich die Linie aus dem pfade.data-file trennen.
varPfad = /home/virtual/seiteXX/var/www/html/
varBerechtigung = admin123:admin123

Herzlichen Dank
Mike
 

oc2pus

Ultimate Guru
awk ist dein Freund für solche Zerlegungen

wenn du dich dort ein wenig eingelesen hast und nicht weiterkommst, meldest du dich einfach wieder.
 
OP
O

overandover

Newbie
danke.. werde mich gleich einlesen!!!

hast du auch einen hinweis für das lesen eines files? wäre dir sehr dankbar!
 

oc2pus

Ultimate Guru
overandover schrieb:
danke.. werde mich gleich einlesen!!!

hast du auch einen hinweis für das lesen eines files? wäre dir sehr dankbar!


Beispiel:
echo
Code:
"/home/virtual/seiteXX/var/www/html/;admin123:admin123" | awk -F";" '{print $1}'
==> /home/virtual/seiteXX/var/www/html/

Code:
echo "/home/virtual/seiteXX/var/www/html/;admin123:admin123" | awk -F";" '{print $2}'
==> admin123:admin123

probiere mal:
Code:
while read satz
do
 var1=`echo $satz | awk -F";" '{print $1}'`
 var2=`echo $satz | awk -F";" '{print $2}'`
done <datei
 
OP
O

overandover

Newbie
herlichen dank! es funktioniert.

da ich es nicht mit dem vi geschrieben habe.. sondern unter windows und dann noch uploaden musste, war noch ein
dos2unix angebracht!

danke!
 
Oben