Siduction Forum

Siduction Forum => Scripting & Kernelhacking => Topic started by: ralfi on 2011/07/28, 14:27:30

Title: Müller-Lüdenscheid ... ?
Post by: ralfi on 2011/07/28, 14:27:30
Hallo Forumser,

ich hab schon ein etwas länger schwelendes Problem mit einer grep-Abfrage, welches ich bis jetzt erfolgreich verdrängt habe nun aber doch ein für alle Male mit eurer Hilfe lösen möchte.

Ich möchte in einer Textdatei das Vorhandensein einer Zeichenkette mit Bindestrich abfragen also z.B. siehe Titel oder aber "weiss-gar-nix".

Welche Sonderzeichen o.ä. muss ich da in meine Abfrage einfügen?
Title: Müller-Lüdenscheid ... ?
Post by: towo on 2011/07/28, 14:35:09
grep "foo-bar" /path/to/textfile

??
Title: Müller-Lüdenscheid ... ?
Post by: ralfi on 2011/07/28, 14:53:00
Okay, ein bisschen blöd gefragt, denn in der Datei kommt vor foo-bar bspw. auch foo oder oo vor und genau das will ich ja nicht finden.
Ich hab das mal mit http://www.zytrax.com/tech/web/regex.htm probiert (Test in der Mitte der Seite), aber nicht hinbekommen.
Title: Müller-Lüdenscheid ... ?
Post by: arwa on 2011/07/28, 15:14:48
Gib am besten mal ein Beispiel mit 4 Zeilen, von denen ein oder zwei matchen und andere nicht matchen soll, obwohl sie foo-bar drinstehen haben. So habe ich das noch nicht verstanden, was Du willst? Steht das gesuchte Wort immer am Zeilenanfang? Dann könntest Du mit "^foo-bar" weiterkommen.
Title: Müller-Lüdenscheid ... ?
Post by: towo on 2011/07/28, 15:14:51
Die Frage ist der Aufbau der Datei.
Wenn Du nach foo-bar grepst, und das in einer Zeile steht, wo auch foo oder oo drin ist, dann wird Dir latürnich die ganze Zeile ausgegeben, weil grep ja Zeilen ausgibt.

~
towo:Defiant> cat dateien.txt
towo
foo
bar
foo-bar
Müller-Lüdenscheid
Müller Lüdenscheid
oo
foo


~
towo:Defiant> grep "foo-bar" dateien.txt
foo-bar
Title: Müller-Lüdenscheid ... ?
Post by: cryptosteve on 2011/07/28, 17:51:06
Was genau möchtest Du denn finden? Alle Vorkommen von "-"? Alle Vorkommen von string-string? Alle Vorkommen von genauerstring-genauerstring?
Title: Müller-Lüdenscheid ... ?
Post by: ralfi on 2011/07/29, 10:13:40
Hi Steve,

jo, ich möchte genauerstring-genauerstring erkennen.

Wenn also in der ersten Zeile "Müller" steht und in der zweiten Zeile "Müller-Lüdenscheit" soll er nur Letzteres erkennen. Dabei soll es egal sein, wo in der Zeile das dann steht.
Title: Müller-Lüdenscheid ... ?
Post by: cryptosteve on 2011/07/29, 10:31:47
Dann hat towo doch schon die richtige Lösung genannt:
grep "genauerstring-genauerstring" $dateinameOder passt das noch nicht? Wenn ja, warum nicht?
Title: Müller-Lüdenscheid ... ?
Post by: ralfi on 2011/07/29, 21:35:11
Jo, es ist schon merkwürdig, vielleicht liegt es auch an etwas anderem. Es handelt sich um ein von vdr aufgerufenes postrecording script, welches in Abhängigkeit vom Inhalt der vdr.info bestimmte Aktionen durchführt. Komischerweise funktioniert die Abfrage für "heute-journal" nicht, für alle anderen Sendungen schon. Ich muss mir nochmal eine Möglichkeit zum Debugging überlegen.
Title: Müller-Lüdenscheid ... ?
Post by: ralul on 2011/07/29, 22:05:33
Wenn in der ersten Zeile Fischer steht,
in der zweiten Müller-Lüdenscheidt

Dann ist das nicht, was du erkennen willst, da muss vorher Müller oder Lüdenscheidt sein?

Geht es um Heiraten oder Scheidungsstatistiken?
Title: Müller-Lüdenscheid ... ?
Post by: ralfi on 2011/07/30, 10:19:02
Nö, um Nachrichtensendungen
Title: Müller-Lüdenscheid ... ?
Post by: ralfi on 2011/08/23, 15:00:19
HEUREKA, ich habs gefunden ...

Beim Kopieren / Einfügen ist mir einfach ein . (Punkt) in die Befehlszeile gerutscht - und dann wurde die Datei nicht kopiert - und ich habe dies auf Grund der kleinen Terminalschriftart und vermutlich partiellem Aufmerksamkeitsdefizit-Syndroms nicht gesehen. Nun ja ... siehe Signatur