nach einem wort in einer textdatei suchen

P

Pinar

Pinar
halloooo ihr lieben,

ich hoffe ihr könnt mir weiterhelfen :)

ich lernen momentan die skriptsprache shell und alles was dazu gehört. ich soll aus einer textdatei bestimmte wörter rausfiltern.
ich habe herausgefunden, dass man das am besten mit while read macht.
leider komme ich ab dem punkt nicht wirklich weiter :/

while read line < $OUTPUTFILE
do
# Suche "CONTROLLERS---" ... -> FOUND=1
if [ -n "`echo $line | grep CONTROLLERS--- ´" ]; then
FOUND=1
elif [ $line == "ARRAYS---" ] && break

das wort dass ich such liegt in dem abschnitt dass mit controllers anfängt und mit arrays aufhört :/
 
was willst Du denn genau machen, daß nicht einfach grep ausreicht?
 
also ich hab da eine datei von der ich bestimmte werte rauslesen muss. die datei ist groß und ist in abschnitten gelegt.
in jedem abschnitt kann das bestimmte wort vorkommen mit anderen werten, aber ich brauche den wert nur von dem einen abschnitt.
somit muss mein skirpt erst einmal den richtigen abschnitt finden und von dort dann das eine bestimmte wort und schliesslich das wort mit dem wert ausgeben :)

etwas verständlicher geworden :D
 
doch. Er versucht, einen Ausdruck in einer Textdatei ein einem bestimmten Bereich zu finden, der durch 2 def. Ausdrücke beschränkt wird.
 
doch. Er versucht, einen Ausdruck in einer Textdatei ein einem bestimmten Bereich zu finden, der durch 2 def. Ausdrücke beschränkt wird.
Ach was, wirklich? Genauso unkonkret wie der Ursprungsposter.
Das Problem ist dieses allgemeine Geschwafel.
Sein Suchwort kommt im Abschnitt mit Werten vor. Wie ist Suchwort und Wert dort definiert?

"Die Datei ist gross" aha sehr informativ. Was heisst 'gross' konkret?

Zudem riecht das streng nach Hausaufgabe.
 
hallo noch mals allerseits,

1. ich bin eine Sie ;)
2. nein es sind keine Hausaufgaben
3. Wir sind mit meiner freundin momentan dabei, die skriptsprache zu lernen. Soweit wir es mitbekommen haben, benutzt man die Sprache hauptsächlich dafür, um Dateien "durchzusuchen", also haben wir im internet nach einer Aufgabe gesucht und diese gefunden (leider ohne einer Antwort).
Inzwischen sieht unser Code auch etwas anders aus, aber hängen leider wieder fest und wir dachten, dass wir hier ein paar ansatzpunkte bekämen und weiter kommen.

Naja war wohl nicht der fall, trotzdem danke ich euch und viel spass...
 
Wenn's thematisch noch hier rein passt - könnt ihr hier gerne weiterposten - allternativ mit neuem Problem einen neuen Thread aufmachen.

Grundlegend wart ihr oben schon auf der richtigen Spur (zumindest wäre ich es erstmal so auch angegangen) - Marker setzen, wenn man "den Einstiegspunkt gefunden hat. Danach dann halt "schauen ob Marker gesetzt, wenn ja - grep auf die Zeile, ob Suchtext enthalten und ggf. ausgeben".

Sicherlich kann man das auch eleganter oder cooler lösen, manchmal ist die intuitive Lösung aber auch nicht die schlechteste.
 
wie könnte man das ganze eleganter oder cooler lösen :) kannst du mir hier paar tipps geben oder zumindest wonach ich genau suchen soll

intuitive lösungen können manchmal gut sein aber will dann doch lieber auch einen guten code schreiben als nur dass das skript irgendwie funktioniert und ich in 2 jahren nicht mehr genau weiß was es macht :)
 
Ich fürchte fast, der intuitive Weg ist der, den man auch in 2 Jahren noch versteht. Vor allem, wenn man den Code gut dokumentiert.

Cooler oder eleganter - kommt ein wenig drauf an, was es denn konkret für eine Datei ist, die ihr da untersuchen wollt. Für viele Dateiformate gibt's fertige Tools ("Standard-Config-Dateien mit []-Markern, XML-Files, ...) die einem die Arbeit abnehmen, Über Regular-Expressions kann man viel erreichen, manchmal ist es einfacher, aus eriner Datei mit 50Mio Zeilen eine einzige Zeile zu machen, ...
 
ok ich weiß bescheid und google mal rum
ich danke dir für deine hilfe ;)
 

Ähnliche Themen

Last mit etc/passwd anzeigen lassen

Variableninhalt wird nicht gespeichert

Windows clients können nicht mehr auf lange laufendes System zugreifen

Textdatei zeilenweise editieren

Problem mit if in der while Schleife...

Zurück
Oben