
Zitat von
ebito
hallo,
hab leider nicht viel Erfahrung mit Shell-Skripte.
Ich habe eine Datei die ich mit ls >> test.txt erstelle habe.
Mein Shell-Skript soll nun in einer Schleife Zeile für Zeile der Datei in eine Variable schreiben, aber nur Zeilen die nicht mit "." anfangen.
das hab ich mal geschrieben (läuft aber net):
Code:
#!/bin/bash
datei=test.txt
nummer=3
text=""
i=0
while [ $nummer -le 4 ]
do
text=head -$nummer $datei | tail -1
if (text!=".") then
head $-nummer $datei | tail -1
fi
nummer=$[$nummer+1]
done
danke schonmal für Tipps.
gruß
Hallo
An der while liegt es nicht alleine.
Da sind gleich etliche Fehler drin.
Dein Problem könntest du regeln, indem du die Zeilen welche mit Punkt beginnen gleich mit sed oder grep ausfilterst.
Wozu brauchst du den Zähler?
Gegenvorschlag.
Falls du etwas mit dem i machen willst, incrementiere ich dir das mal mit.
Code:
i=0
egrep -v "^\." inputdatei |while read VAR;
do
echo $VAR;
echo $i;
((i++));
# wenn i >4 steigen wir aus.-falls du das brauchst.
# will dir hier auch blosz mal eine funktionierendes test zeigen.
# du kannst natürlich auch mit head am Anfang arbeiten.
if [ $i -gt 4 ];
then
break;
fi;
done
Wenn du die Ausgabe eines Befehls in einer Variable haben willst, benutze sowas:
Die Backtics gehen auch, sind aber veraltet.
Gruß Wolfgang
Lesezeichen