Unix Shell echo/ausgabe solange Bedingung ...

D

dolan

Grünschnabel
Hallo liebe Unix User,
da ich relativ neu bin, was Linux / Unix angeht stehe ich gerade komplett auf dem Schlauch!

Problem:
Aus mehreren Files werden nacheinander mittels GREP "20" Zeilen ausgelesen und mittels SED weiterverarbeitet.
Allerdings ist die Anzahl "20" meistens zu groß...
Beim Auslesen kommt etwas wie:
Code:
ABC:
[1] IRGENTWAS
[2] IRGENTWAS
[C] IRGENTWAS
[3] IRGENTWAS
[A] IRGENTWAS
[4] IRGENTWAS
UNKNOWN:
[D] IRGENTWAS
[1] IRGENTWAS
[C] IRGENTWAS
UNKNOWN:
...
heraus.

Es soll alles Von ABC: bis UNKNOWN erhalten bleiben, wobei UNKNOWN bei den Dateien unterschiedlich sein kann.
Die Unterscheidung könnte ja über: solange ABC: [X] [X] [X] [X] ... laufen, bis UNKNOEN ohne [] erreicht ist.
Allerdings komm ich hier nicht weiter.

Vielleicht versteht Ihr worum es geht und habt sogar eine weiterführende Idee :)
 
Hallo und Wilkommen

while [ $( dein grep ) = "ABC" ]
do
dein sed
done

Solange bis...lässt sich zum Beispiel mit while lösen. Das $(dein grep) führt den grep Befehl aus und gibt das Ergebniss zum Vergleich. Die Bedingung ist mir nich klar deswegen dürfte das ="ABC" nicht stimmen.

Grüße

Achso, bei mir läuft die Bash Shell! Syntax kann bei dir ander sein!
 
EDIT:
Hat sich erledigt !
Habe bei grep
-R, -r, --recursive
Read all files under each directory, recursively; this is equiv-
alent to the -d recurse option.
hinzugefügt!




Hallo,
vilen Dank Remidemi ;)
Habe jetzt grep ABC ... | sed ... | while :) und es funktioniert super.
Jetzt habe ich allerdings das Problem das der grep mir nur das erste ABC an den sed weitergibt :( und dann aufhört.

In der Datei kann allerdings nochmal ABC vorkommen und es werden alle benötigt!

Also so etwas wie:
ABC:
[1] IRGENTWAS
UNKNOWN:
[D] IRGENTWAS
ABC:
[XY] IRGENTWAS
...

Wie komme ich denn dann, wenn Grep / Sed schon beendet sind an das zweite ABC ran ?
 
Zuletzt bearbeitet:

Ähnliche Themen

Bei PostgreSQL als anderer als der angemeldete Nutzer verbinden - Wo liegt der Fehler

Zurück
Oben