Ich hätte ne for schleife genommen:
Und dann würde ich mit grep arbeitenCode:for ((i=0; i<=4; i++)) do bla bla done
man grep
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):
danke schonmal für Tipps.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
gruß
|
Linux für Profis – Das CHIP-Sonderheft jetzt 70% billiger In diesem CHIP Special erfahren Sie, wie Sie Linux optimal nutzen.
|
Ich hätte ne for schleife genommen:
Und dann würde ich mit grep arbeitenCode:for ((i=0; i<=4; i++)) do bla bla done
man grep
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.
Wenn du die Ausgabe eines Befehls in einer Variable haben willst, benutze sowas: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
Die Backtics gehen auch, sind aber veraltet.Code:VAR=$(command);
Gruß Wolfgang
Ich bin pure Nostalgie
vielen Dank, hab es jetzt hinbekommen.
Brauche das Script, da ich in diesen Ordner files kopieren will, die mir das Script alle nacheinander über FTP auf nen anderen Server bringt.
Also um dieses Verfahren für User einfacher zu gestalten.
gruß
Lesezeichen