Hallo Liste, ich möchte aus einer Zeile einen bestimmten Ausdruck und die nachfolgenden z.B. 5 Zeichen filtern: Zeile: Irgendwas ich weiss auch nicht was Ausdruck fünf geht weiter oder auch nicht ^^^^^^^^^^^^^ Das ganze soll per script (/bin/sh) geschehen. Ich lese eine Datei per cat ein gebe das an grep weiter und möchte als Ausgabe diesn Ausdruck haben. cat /home/user/liesmich | grep -e "Ausdruck" | ????? Dabei ist sicher, dass der "Ausdruck" auch wirklich nur einmal in der Datei vorkommt. Hat jemand eine Idee? Carsten
* Carsten Roehling
ich möchte aus einer Zeile einen bestimmten Ausdruck und die
man grep ,---- | | OPTIONEN | -A Anzahl | gibt Anzahl Zeilen Kontext nach jeder gefundenden | Zeile aus | | -B Anzahl | gibt Anzahl Zeilen Kontext vor jeder gefundenden | Zeile aus | | -C gibt 2 Zeilen Kontext vor und nach jeder gefunden | den Zeile aus | `---- Gruss, Andreas -- Download best WAREZ: http://127.0.0.1
--Am Sonntag, 26. Januar 2003 22:57 +0100 schrieb
Andreas Kneib
* Carsten Roehling
: ich möchte aus einer Zeile einen bestimmten Ausdruck und die
man grep
,---- | | OPTIONEN | -A Anzahl | gibt Anzahl Zeilen Kontext nach | jeder gefundenden Zeile aus | | -B Anzahl | gibt Anzahl Zeilen Kontext vor | jeder gefundenden Zeile aus | | -C gibt 2 Zeilen Kontext vor und nach | jeder gefunden den Zeile aus | `----
Hallo Andreas, passt nicht ganz. Ich habe ja bereits eine Zeile und möchte in dieser die fünf folgenden Zeichen (nicht Zeilen) inkl. dem gefunden Ausdruck haben. So wie in meinem Beispiel beschrieben: Irgendwas ich weiss auch nicht was Ausdruck fünf geht weiter oder auch nicht Das ist die Zeile, suchen möchte ich z.B. nach "Ausdruck". Ergebnis soll dann 'Ausdruck fünf" sein. Sorry wenn ich es nicht eindeutig beschrieben haben sollte. Carsten
Hallo Carsten, * Carsten schrieb am 26.01.2003:
--Am Sonntag, 26. Januar 2003 22:57 +0100 schrieb Andreas Kneib
: * Carsten Roehling
: ich möchte aus einer Zeile einen bestimmten Ausdruck und die
man grep
,---- | | OPTIONEN | -A Anzahl | gibt Anzahl Zeilen Kontext nach | jeder gefundenden Zeile aus | | -B Anzahl | gibt Anzahl Zeilen Kontext vor | jeder gefundenden Zeile aus | | -C gibt 2 Zeilen Kontext vor und nach | jeder gefunden den Zeile aus | `----
Hallo Andreas, passt nicht ganz. Ich habe ja bereits eine Zeile und möchte in dieser die fünf folgenden Zeichen (nicht Zeilen) inkl. dem gefunden Ausdruck haben. So wie in meinem Beispiel beschrieben:
Irgendwas ich weiss auch nicht was Ausdruck fünf geht weiter oder auch nicht
Das ist die Zeile, suchen möchte ich z.B. nach "Ausdruck". Ergebnis soll dann 'Ausdruck fünf" sein.
echo "Irgendwas ich weiss auch nicht was Ausdruck fünf geht" | sed 's/^.* \(Ausdruck \w*\) .*/\1/' Greetz, Tom -- Preissler Thomas Registered Linux User #265745 GPG-Key: 1024D/C21DAB7F http://counter.li.org/
--Am Montag, 27. Januar 2003 00:18 +0100 schrieb
Thomas Preissler
echo "Irgendwas ich weiss auch nicht was Ausdruck fünf geht" | sed 's/^.* \(Ausdruck \w*\) .*/\1/'
Danke Tom, genau sowas habe ich gesucht. Ich musste etwas länger nach der Bedeutung von '\w*' suchen und bin bei 'man ed' fündig geworden. Kennt jemand eine umfassende Doku zu den 'REGULAR EXPRESSIONS'? Carsten
Carsten Roehling schrieb am 28. January 2003:
--Am Montag, 27. Januar 2003 00:18 +0100 schrieb Thomas Preissler
: echo "Irgendwas ich weiss auch nicht was Ausdruck fünf geht" | sed 's/^.* \(Ausdruck \w*\) .*/\1/'
Danke Tom, genau sowas habe ich gesucht. Ich musste etwas länger nach der Bedeutung von '\w*' suchen und bin bei 'man ed' fündig geworden.
Kennt jemand eine umfassende Doku zu den 'REGULAR EXPRESSIONS'?
Das Problem ist, es gibt soviele Dialekte bei den Regexes. So gruppiert sed z.B. anders als Perl, das Wesentliche ist allerdings in allen Dialekten gleich, ganz klar. Von daher hilft es meiner Meinung jetzt auch nicht, Dir da diesen und jenen Link zu schicken. Ich suche mir da immer im speziellen diese und jene Seite via Google. HTH, Thomas
Hallo Carsten,
* Carsten Roehling
Sorry wenn ich es nicht eindeutig beschrieben haben sollte.
Nene, das Sorry ist, wie der Unfug, den ich geschrieben habe, glatt auf meiner Seite. Du hast die Problemstellung schon eindeutig beschrieben, ich hab's falsch gelesen. Vermutlich bittet mich Dr. Dementia so langsam zu Tisch... ;) Gruss, Andreas -- " If it be poison'd, 'tis the lesser sin That mine eye loves it and doth first begin " Shakespeare, Sonett CXIV
* am 27. Jan. 2003 postete Andreas Kneib:
* Carsten Roehling
: Sorry wenn ich es nicht eindeutig beschrieben haben sollte.
Nene, das Sorry ist, wie der Unfug, den ich geschrieben habe, glatt auf meiner Seite. Du hast die Problemstellung schon eindeutig beschrieben, ich hab's falsch gelesen.
Vermutlich bittet mich Dr. Dementia so langsam zu Tisch... ;)
*ROTFL* Bye Michael -- Wenn eine Kette von Ereignissen schiefgehen kann, wird das auch in der schlimmstmöglichen Reihenfolge geschehen. _______________________________________________________________________ Registered Linux User #228306 AIM Tuxi70 ICQ #151172379
* Carsten Roehling schrieb am 26.Jan.2003:
ich möchte aus einer Zeile einen bestimmten Ausdruck und die nachfolgenden z.B. 5 Zeichen filtern: Zeile: Irgendwas ich weiss auch nicht was Ausdruck fünf geht weiter oder auch nicht ^^^^^^^^^^^^^ Das ganze soll per script (/bin/sh) geschehen. Ich lese eine Datei per cat ein gebe das an grep weiter und möchte als Ausgabe diesn Ausdruck haben. cat /home/user/liesmich | grep -e "Ausdruck" | ?????
Warum cat ... | grep? Das kann grep auch alleine: grep -e "Ausdruck" /home/user/liesmich | ????? macht das Gleiche.
Dabei ist sicher, dass der "Ausdruck" auch wirklich nur einmal in der Datei vorkommt.
Das machst Du nicht mit grep, sondern mit sed: sed -n '/Ausdurck/s/\(Ausdruck....\).*/\1/p' /home/user/liesmich Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
participants (6)
-
Andreas Kneib
-
B.Brodesser@t-online.de
-
Carsten Roehling
-
Michael Raab
-
Thomas Preissler
-
Thomas Preissler