Re: regexp frage

2006-10-12 Diskussionsfäden Mario 'BitKoenig' Holbe
Roland M. Kruggel <[EMAIL PROTECTED]> wrote:
>   \s*[(=,\t ]_[a-zA-Z0-9_]*
> genommen. Es funktioniert so halbwegs, ausser das (=, nicht gefunden 

Wie soll das auch gefunden werden? Du matchest ja auf alles, was nach
beliebig vielen spaces mit '(', '=', ',',  oder ' ' beginnt und dem
dann beliebig viele Buchstaben, Ziffern und Underscores folgen.
Wo findest Du da einen Match auf '(='?


regards
   Mario
-- 
I heard, if you play a NT-CD backwards, you get satanic messages...
That's nothing. If you play it forwards, it installs NT.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: regexp frage

2006-10-12 Diskussionsfäden Gebhard Dettmar
On Wednesday 11 October 2006 12:29, Roland M. Kruggel wrote:
> > [...]
>
> Ich habe jetzt
>   \s*[(=,\t ]_[a-zA-Z0-9_]*
>
> genommen. Es funktioniert so halbwegs, ausser das (=, nicht gefunden
> werden. Vllt. ist das ja eine spezielle eigenschaft von kate. Vllt.
> gibt es ja hier einen kate-spezialisten :)

Nee, aber Kmail (für's Filtern) Im Prinzip guckst du einfach, wie maskiert 
wird. Die Frage ist doch, nach welchem Flavour in Kate Regexes 
funktionieren (bitte nicht regexp - furchtbar)
Wo nicht maskiert wird und \b \s etc. gehen, kannst du von Perl-Flavour 
ausgehen (und drei Kreuze schlagen).
Gruß Gebhard
-- 
Tonight you will pay the wages of sin; Don't forget to leave a tip.



Re: regexp frage

2006-10-11 Diskussionsfäden Andreas Pakulat
On 11.10.06 13:39:19, Roland M. Kruggel wrote:
> > > Ich habe jetzt
> > >   \s*[(=,\t ]_[a-zA-Z0-9_]*
> > >
> > > genommen. Es funktioniert so halbwegs, ausser das (=, nicht
> > > gefunden werden.
> >
> > Damit findest du aber auch "_" als Variable.
> 
> Ja. Aber da diese Variable nie vorkommt ist das zu vernachlässigen.

Ja aber das zu reparieren ist doch wirklich zu einfach:

s/*$/+/

Und gut ist.

Andreas

-- 
Avoid gunfire in the bathroom tonight.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: regexp frage

2006-10-11 Diskussionsfäden Roland M. Kruggel
> > Ich habe jetzt
> >   \s*[(=,\t ]_[a-zA-Z0-9_]*
> >
> > genommen. Es funktioniert so halbwegs, ausser das (=, nicht
> > gefunden werden.
>
> Damit findest du aber auch "_" als Variable.

Ja. Aber da diese Variable nie vorkommt ist das zu vernachlässigen.

> > Vllt. ist das ja eine spezielle eigenschaft von kate. Vllt.
> > gibt es ja hier einen kate-spezialisten :)
>
> Wenn nicht hier dann aber auf kwrite-devel, einfach mal dort
> nachfragen. 

Gute Idee.

> Normalerweise sollte Kate da aber diesselben Regexpes 
> nutzen wie auch der Search/Replace Dialog in Kate selbst. Also mal
> ne Quellcode-Datei oeffnen und mit Strg-S den Dialog starten 

Das kannte ich noch nicht. Thnx

> und ein wenig rumexperimentieren.

Bin schon dabei.


-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Re: regexp frage

2006-10-11 Diskussionsfäden Andreas Pakulat
On 11.10.06 12:29:36, Roland M. Kruggel wrote:
> >
> > Da hast du die whitespaces vorher dabei. Ich würde stattdessen ein
> > \b (word boundary nehmen):
> >
> > \b_[a-zA-Z0-9_]+
> > Wobei ich jetzt nicht weiß, welche Buchstaben alle in so einem Ding
> > drin sein dürfen.
> >
> > Eine andere Möglichkeit wären non-greedy Ausdrücke:
> > \b_.*?\b
> > oder so.
> 
> die funktionieren leider beide nicht. 
> 
> Ich habe jetzt 
>   \s*[(=,\t ]_[a-zA-Z0-9_]*
> 
> genommen. Es funktioniert so halbwegs, ausser das (=, nicht gefunden 
> werden.

Damit findest du aber auch "_" als Variable.

> Vllt. ist das ja eine spezielle eigenschaft von kate. Vllt. 
> gibt es ja hier einen kate-spezialisten :)

Wenn nicht hier dann aber auf kwrite-devel, einfach mal dort nachfragen.
Normalerweise sollte Kate da aber diesselben Regexpes nutzen wie auch
der Search/Replace Dialog in Kate selbst. Also mal ne Quellcode-Datei
oeffnen und mit Strg-S den Dialog starten und ein wenig
rumexperimentieren.

Andreas

-- 
Long life is in store for you.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: regexp frage

2006-10-11 Diskussionsfäden Roland M. Kruggel
>
> Da hast du die whitespaces vorher dabei. Ich würde stattdessen ein
> \b (word boundary nehmen):
>
> \b_[a-zA-Z0-9_]+
> Wobei ich jetzt nicht weiß, welche Buchstaben alle in so einem Ding
> drin sein dürfen.
>
> Eine andere Möglichkeit wären non-greedy Ausdrücke:
> \b_.*?\b
> oder so.

die funktionieren leider beide nicht. 

Ich habe jetzt 
  \s*[(=,\t ]_[a-zA-Z0-9_]*

genommen. Es funktioniert so halbwegs, ausser das (=, nicht gefunden 
werden. Vllt. ist das ja eine spezielle eigenschaft von kate. Vllt. 
gibt es ja hier einen kate-spezialisten :)


-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Re: regexp frage

2006-10-11 Diskussionsfäden Moritz Lenz
Hallo,

Roland M. Kruggel wrote:
> 
> function aubb_anschrift_delete(_rowid, _para1)
>   define  _rowidint,
>   _para1char(10)
>   define  rid   int,
>   txt   char(20),
>   txt_2 char(1)
> 
>   let rid = _rowid
>   let txt = "text ",_para1
>   let txt_2 = ""
> 
> 
> Folgedes soll gemacht werden.
> Parameter fangen alle (bei mir zu mindestens) mit einem Unterstrich 
> an. Diese sollen markiert werden. Die Variablen die in der Mitte 
> einen Unterstrich habe sollen nicht markiert werden, es sei denn sie 
> haben am Anfang auch einen Unterstrich. Vor der Parametervariablen 
> können steht eins von den folgenden Zeichen: 
> ,=(   
> 
> Die Parametervariable endet mit einem der folgenden Zeichen
> ,   
> Ich habe folgenden regexp definiert
>   \s*[,=(\t ]_[a-z_]*

Da hast du die whitespaces vorher dabei. Ich würde stattdessen ein \b
(word boundary nehmen):

\b_[a-zA-Z0-9_]+
Wobei ich jetzt nicht weiß, welche Buchstaben alle in so einem Ding drin
sein dürfen.

Eine andere Möglichkeit wären non-greedy Ausdrücke:
\b_.*?\b
oder so.

Viel Spass beim Experimentieren,
Moritz


> Es werden alle Parametervariablen markiert, außer die '_rowid' im 
> Funktionskopf. Ausserdem wird das Zeichen vor dem _ auch markiert. 
> [,=(\t ] Das soll nicht sein.
> 
> Kann jemand helfen?
> 


-- 
Moritz Lenz
http://moritz.faui2k3.org/



signature.asc
Description: OpenPGP digital signature


regexp frage

2006-10-11 Diskussionsfäden Roland M. Kruggel
Hallo Liste,

ich bin gerade dabei für kate ein neue Hervorhebungsdatei (schrecklich 
in deutsch) für informix-4gl zu schreiben. Ich kriege den regexp 
nicht richtig zusammen und benötige ein wenig Hilfe.

Erstmal ein Beispielcode

function aubb_anschrift_delete(_rowid, _para1)
  define  _rowidint,
  _para1char(10)
  define  rid   int,
  txt   char(20),
  txt_2 char(1)

  let rid = _rowid
  let txt = "text ",_para1
  let txt_2 = ""


Folgedes soll gemacht werden.
Parameter fangen alle (bei mir zu mindestens) mit einem Unterstrich 
an. Diese sollen markiert werden. Die Variablen die in der Mitte 
einen Unterstrich habe sollen nicht markiert werden, es sei denn sie 
haben am Anfang auch einen Unterstrich. Vor der Parametervariablen 
können steht eins von den folgenden Zeichen: 
,=(   

Die Parametervariable endet mit einem der folgenden Zeichen
,   
Ich habe folgenden regexp definiert
  \s*[,=(\t ]_[a-z_]*

Es werden alle Parametervariablen markiert, außer die '_rowid' im 
Funktionskopf. Ausserdem wird das Zeichen vor dem _ auch markiert. 
[,=(\t ] Das soll nicht sein.

Kann jemand helfen?

-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Re: Neues Problem mit RegExp (was Re: suche regexp)

2006-06-22 Diskussionsfäden Matthias Houdek
Hallo Michael Bienia, hallo auch an alle anderen

Mittwoch, 21. Juni 2006 12:34 - Michael Bienia wrote:
>
> Mit Lookaround-Zusicherungen wie sie z.B. Perl kennt:
>   s/(?:^|(?<=\|))(\d+)\.(\d\d?\|)/\1,\2/g
> Hier wird eine Lookbehind-Zusicherung genutzt, um nachzusehen, ob vor
> den Zahlen ein | ist. Eine andere Möglichkeit wäre über eine
> Lookahead-Zusicherung nachzusehen, ob nach dem Punkt eine oder zwei
> Ziffern und ein | folgen:
>   s/((^|\|)\d+)\.(?=\d\d?\|)/\1,/g
>
> sed kennt wowas nicht, also wirst du wohl auf Perl umsteigen müssen.

OK, danke.

Lookahead und Lookbehind kannte ich noch nicht. Ist aber sehr 
interessant und wird mir sicherlich auch in Perl-Scripten sehr nützlich 
werden. Hoffentlich wird es bald auch von anderen Toola mit 
aufgenommen, da der "Verbrauch" von Zeichen, auf die man später wieder 
zugreifen will, doch ab und zu mal vorkommt. Und so kann man den ja 
wunderbar unterbinden.

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-21 Diskussionsfäden Andreas Pakulat
On 21.06.06 15:45:19, Bjoern Schliessmann wrote:
> Andreas Pakulat wrote:
> 
> > Ich mag Python auch lieber, aber fuer ein paar
> > Such/Ersetzungsauftraege mit Regexp ist Perl deutlich besser
> > geeignet.
> 
> Ernsthaft, warum ist Perl hier besser geeignet -- ist der Quelltext
> kürzer oder die Performance besser?

Der Quelltext ist deutlich kuerzer, da Suchen-Ersetzen mit Regex in die
Sprache eingebaut ist und nicht ueber ein separates modul (das erst
importiert werden muss) realisiert wird. Ein Perl-Skript auf der
Kommandozeile ist fast genausolang wie dasselbe mit sed.

Ob es schneller ist, weiss ich nicht, weil ich dazu keinerlei Daten
habe.

Andreas

-- 
Today's weirdness is tomorrow's reason why.
-- Hunter S. Thompson


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: suche regexp

2006-06-21 Diskussionsfäden Helmut Wollmersdorfer

Bjoern Schliessmann wrote:


Schnüff. Ich hab Angst vor Perl ;)


Wieso? Beisst nicht und ist nicht giftig.


Ernsthaft, warum ist Perl hier besser geeignet -- ist der Quelltext
kürzer oder die Performance besser?


Beides.

Perl hat z.B. 'automatische Variablen', wo man in Python ein 
Match-Object verwenden muss/kann. Dadurch hat man in Perl weniger zu 
tippseln. Nachteil ist der erhöhte Lernaufwand und weniger 
selbsterklärender Code gegenüber Python. Python ist 'schön' und 
systematisch, Perl 'praktisch' (und hässlich).


Warum ich Python nicht verwende? Weil ich es noch nicht erlernt habe;-)

Helmut Wollmersdorfer


--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/


Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: suche regexp

2006-06-21 Diskussionsfäden Bjoern Schliessmann
Andreas Pakulat wrote:

> Ich mag Python auch lieber, aber fuer ein paar
> Such/Ersetzungsauftraege mit Regexp ist Perl deutlich besser
> geeignet.

Schnüff. Ich hab Angst vor Perl ;)

Ernsthaft, warum ist Perl hier besser geeignet -- ist der Quelltext
kürzer oder die Performance besser?

Grüße,


Björn

-- 
BOFH excuse #103:

operators on strike due to broken coffee machine


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Neues Problem mit RegExp (was Re: suche regexp)

2006-06-21 Diskussionsfäden Michael Bienia
On 2006-06-21 07:58:57 +0200, Matthias Houdek wrote:
> Hallo
> 
> Dienstag, 20. Juni 2006 20:07 - Matthias Houdek wrote:
> > [Ersetzen von Dezimalpunkt durch Dezimalkomma in rein numerischen
> > Feldern in folgender Struktur (z.B.) bei ein oder zwei
> > Nachkommastellen: 
> > sd34.43|232232.22|2345.4|324234.324|2323.45|123.41|
> > ]
> > 
> > sed -r 's/(^|\|)([0-9]+)\.([0-9]{1,2}\|)/\1\2,\3/g' $file
> 
> Dieser RegExp macht zwar das Gewünschte, auch wenn das numerische Feld 
> am Zeilenanfang steht.
> 
> Allerdings erfolgt der Wechsel nicht in zwei aufeinanderfolgenden 
> numerischen Feldern (hier z.B. Felder 2 und 3). Ursache dafür ist, dass 
> der abschließende Delimiter eines Feldes mit erfasst wird|werden muss 
> und damit nicht mehr als Einleitung für das nächste Feld aufgenommen 
> wird. Damit trifft der RegExp für das nachfolgende Feld nicht mehr zu.
> 
> Nun kann man ja diesen sed-Befehl 2 x über die Datei laufen lassen, dann 
> würden auch die im ersten Durchlauf nicht erfassten geändert. Oder man 
> verdoppelt zuvor alle Feld-Delimiter.
> 
> Gibt es keine andere Möglichkeit?

Mit Lookaround-Zusicherungen wie sie z.B. Perl kennt:
s/(?:^|(?<=\|))(\d+)\.(\d\d?\|)/\1,\2/g
Hier wird eine Lookbehind-Zusicherung genutzt, um nachzusehen, ob vor
den Zahlen ein | ist. Eine andere Möglichkeit wäre über eine
Lookahead-Zusicherung nachzusehen, ob nach dem Punkt eine oder zwei
Ziffern und ein | folgen:
s/((^|\|)\d+)\.(?=\d\d?\|)/\1,/g

sed kennt wowas nicht, also wirst du wohl auf Perl umsteigen müssen.

Michael


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Neues Problem mit RegExp (was Re: suche regexp)

2006-06-20 Diskussionsfäden Roland M. Kruggel
Am Mittwoch, 21. Juni 2006 07:58 schrieb Matthias Houdek:
> Hallo
>
> Dienstag, 20. Juni 2006 20:07 - Matthias Houdek wrote:
> > [Ersetzen von Dezimalpunkt durch Dezimalkomma in rein numerischen
> > Feldern in folgender Struktur (z.B.) bei ein oder zwei
> > Nachkommastellen:
> > sd34.43|232232.22|2345.4|324234.324|2323.45|123.41|
> > ]
> >
> > sed -r 's/(^|\|)([0-9]+)\.([0-9]{1,2}\|)/\1\2,\3/g' $file
>
> Dieser RegExp macht zwar das Gewünschte, auch wenn das numerische
> Feld am Zeilenanfang steht.
>
> Allerdings erfolgt der Wechsel nicht in zwei aufeinanderfolgenden
> numerischen Feldern (hier z.B. Felder 2 und 3). Ursache dafür ist,
> dass der abschließende Delimiter eines Feldes mit erfasst
> wird|werden muss und damit nicht mehr als Einleitung für das
> nächste Feld aufgenommen wird. Damit trifft der RegExp für das
> nachfolgende Feld nicht mehr zu.

Habe ich auch gestern festgestellt. Ich habe ihn einfach zweimal 
durchlaufen lassen. :) Nicht elegant, aber funktionell :)

-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Neues Problem mit RegExp (was Re: suche regexp)

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo

Dienstag, 20. Juni 2006 20:07 - Matthias Houdek wrote:
> [Ersetzen von Dezimalpunkt durch Dezimalkomma in rein numerischen
> Feldern in folgender Struktur (z.B.) bei ein oder zwei
> Nachkommastellen: 
> sd34.43|232232.22|2345.4|324234.324|2323.45|123.41|
> ]
> 
> sed -r 's/(^|\|)([0-9]+)\.([0-9]{1,2}\|)/\1\2,\3/g' $file

Dieser RegExp macht zwar das Gewünschte, auch wenn das numerische Feld 
am Zeilenanfang steht.

Allerdings erfolgt der Wechsel nicht in zwei aufeinanderfolgenden 
numerischen Feldern (hier z.B. Felder 2 und 3). Ursache dafür ist, dass 
der abschließende Delimiter eines Feldes mit erfasst wird|werden muss 
und damit nicht mehr als Einleitung für das nächste Feld aufgenommen 
wird. Damit trifft der RegExp für das nachfolgende Feld nicht mehr zu.

Nun kann man ja diesen sed-Befehl 2 x über die Datei laufen lassen, dann 
würden auch die im ersten Durchlauf nicht erfassten geändert. Oder man 
verdoppelt zuvor alle Feld-Delimiter.

Gibt es keine andere Möglichkeit?

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Andreas Pakulat
On 21.06.06 00:11:56, Bjoern Schliessmann wrote:
> Roland M. Kruggel wrote:
> 
> > Perl hört sich gut an.
> 
> 
> Python! Python! :) 
> http://www.python.org/
> 

Ich mag Python auch lieber, aber fuer ein paar Such/Ersetzungsauftraege
mit Regexp ist Perl deutlich besser geeignet.

Andreas

-- 
Communicate!  It can't make things any worse.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: suche regexp

2006-06-20 Diskussionsfäden Bjoern Schliessmann
Roland M. Kruggel wrote:

> Perl hört sich gut an.


Python! Python! :) 
http://www.python.org/


Grüße,


Björn

-- 
BOFH excuse #141:

disks spinning backwards - toggle the hemisphere jumper.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: suche regexp

2006-06-20 Diskussionsfäden Roland M. Kruggel
Am Dienstag, 20. Juni 2006 20:07 schrieb Matthias Houdek:
> Damit vereinfacht sich det Janze natürlich wieda, wa:
>
> sed -r 's/(^|\|)([0-9]+)\.([0-9]{1,2}\|)/\1\2,\3/g' $oldfile >
> $newfile

Ich habe mich zu dieser Variante entschieden. 
Recht herzlichen Dank an alle Beteiligten. Ihr habt mir sehr geholfen 
und ich habe wieder viel dazugelernt. Vllt. verstehe ich ja 
irgendwann die regexp richtig. Ihr habt mich jedenfalls ein grosses 
stück weiter gebracht.

-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Re: suche regexp

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo Christian Frommeyer, hallo auch an alle anderen

Dienstag, 20. Juni 2006 19:03 - Christian Frommeyer wrote:
> Am Dienstag 20 Juni 2006 18:03 schrieb Matthias Houdek:
> > *Argh* - bei sed sind es mal wieder Basic-RegExp, also immer schön
> > ein Backslash vor die Klammern und das Oder-Zeichen "|".
>
> sed -r ist Dein Freund ;)

Danke.

Ich nutze sed in letzter Zeit selten. Ein Blick in die Manpage brachte 
mir:

$ man sed | grep -r '^ *-\?r' -A 3
Formatiere sed(1) neu, bitte warten...
[...]
   r Datei
  der Inhalt der Datei wird ausgegeben, bevor die nächste
  Zeile gelesen wird

Werde wohl doch endlich mal die deutschen Manpages wieder 
runterschmeißen, weil hier:

[EMAIL PROTECTED]:~# man -L en sed | grep -r '^ *-\?r' -A 3
Reformatting sed(1), please wait...
   -r, --regexp-extended
  use extended regular expressions in the script.
[...]
   r filename
  Append text read from filename.

Auch die Option 'r filename' verstehe ich anders als die deutsche 
Übersetzung (die ich ehrlich gesagt überhaupt nicht so richtig 
verstehe).

*grmpfrg*

Damit vereinfacht sich det Janze natürlich wieda, wa:

sed -r 's/(^|\|)([0-9]+)\.([0-9]{1,2}\|)/\1\2,\3/g' $oldfile > $newfile

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo Thorsten Haude, hallo auch an alle anderen

Dienstag, 20. Juni 2006 19:39 - Thorsten Haude wrote:
> Moin,
>
> * Matthias Houdek wrote (2006-06-20 16:51):
> >Dienstag, 20. Juni 2006 16:21 - Thorsten Haude wrote:
> >> * Thorsten Haude wrote (2006-06-20 16:11):
> >> >s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/
> >>
> >> Falsch so sollte es gehen:
> >> s/(^|\|)(\d*)\.(\d{1,2}|)/\2,\3/
> >
> >Autsch, das geht auch daneben. ;-)
> >
> >Das lässt den | vor den Vorkommastellen unter den Tisch fallen.
>
> Ach ja, den brauchen wir ja auch noch.
>
> >RegExp sind was tolles, aber man muss auch höllisch aufpassen und
> > auf jeden Fall ausgiebig testen, bevor man an wichtige Daten
> > rangeht.
>
> Ja, danke, weiß ich. Normalerweise mache ich das auch nicht trocken.

Gut, dass ich dann doch ein wenig probiert habe. Hab dabei sogar noch 
was dazugelernt (oder wiederentdeckt? - muss mir mal ein paar uralte 
Scripte von mir rauskramen). 

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Thorsten Haude
Moin,

* Roland M. Kruggel wrote (2006-06-20 16:27):
>Am Dienstag, 20. Juni 2006 16:11 schrieb Thorsten Haude:
>> Ergebnis:
>> /(^|\|)/\d*\.\d{1,2}|/
> ^
>ist dann nicht der zuviel?

Stimmt, keine Ahnung, wo der herkommt.


>Wäre es unverschämt von mir, wenn ich um einen perlaufruf bitten 
>würde. Dann könnte ich mir ein bash-script bauen das die ganzen 58 
>File nacheinander abklappert.

Warum die Mühe? Gibt es irgendetwas, das Bash kann, Perl aber nicht?


Thorsten
-- 
He who receives an idea from me, receives instruction himself without lessening
mine; as he who lights his taper at mine, receives light without darkening me.
- Thomas Jefferson


pgpjOarRyDvXO.pgp
Description: PGP signature


Re: suche regexp

2006-06-20 Diskussionsfäden Thorsten Haude
Moin,

* Matthias Houdek wrote (2006-06-20 16:51):
>Dienstag, 20. Juni 2006 16:21 - Thorsten Haude wrote:
>> * Thorsten Haude wrote (2006-06-20 16:11):
>> >s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/
>>
>> Falsch so sollte es gehen:
>> s/(^|\|)(\d*)\.(\d{1,2}|)/\2,\3/
>
>Autsch, das geht auch daneben. ;-)
>
>Das lässt den | vor den Vorkommastellen unter den Tisch fallen. 

Ach ja, den brauchen wir ja auch noch.


>RegExp sind was tolles, aber man muss auch höllisch aufpassen und auf 
>jeden Fall ausgiebig testen, bevor man an wichtige Daten rangeht.

Ja, danke, weiß ich. Normalerweise mache ich das auch nicht trocken.


Thorsten
-- 
Omnis enim res, quae quando non deficit, dum habetur
et non datur, nondum habetur, quomodo habenda est.
- Aurelius Augustinus


pgpWYftW6SQRO.pgp
Description: PGP signature


Re: suche regexp

2006-06-20 Diskussionsfäden Christian Frommeyer
Am Dienstag 20 Juni 2006 18:03 schrieb Matthias Houdek:
> *Argh* - bei sed sind es mal wieder Basic-RegExp, also immer schön
> ein Backslash vor die Klammern und das Oder-Zeichen "|".

sed -r ist Dein Freund ;)

Gruß Chris

-- 
A: because it distrupts the normal process of thought
Q: why is top posting frowned upon



Re: suche regexp

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo Matthias Houdek, hallo auch an alle anderen

Dienstag, 20. Juni 2006 16:56 - Matthias Houdek wrote:
> Hallo Roland M. Kruggel, hallo auch an alle anderen
>
> Dienstag, 20. Juni 2006 16:27 - Roland M. Kruggel wrote:
> > Am Dienstag, 20. Juni 2006 16:11 schrieb Thorsten Haude:
> > > Moin,
> > >
> > > * Roland M. Kruggel wrote (2006-06-20 14:28):
> > > >Ich muss jetzt in einigen Felder den Punkt durch ein Komma
> > > > ersetzen. Eigentlich trivial wenn da nicht das Datum und das
> > > > Textfeld drin wäre. Dort müssen die Punkte bleiben.
> > >
> > > Also:
> > > Zeilenanfang oder | (^||)
> > > dann beliebig viele Ziffern \d*
> > > dann ein Punkt  \.
> > > dann ein oder zwei Ziffern  \d{1,2}
> > > dann ein |  |
> >
> > Verstanden
> >
> > > Ergebnis:
> > > /(^|\|)/\d*\.\d{1,2}|/
> >
> >  ^
> > ist dann nicht der zuviel?
> >
> > > Wenn die Zahlen wie in Deutschland üblich immer eine
> > > Vorkommastelle haben sollen, dann mußt Du den * durch ein +
> > > ersetzen.
> > >
> > > Wie Du den Punkt ersetzt hängt von der Umgebung und Deinen
> > > Vorlieben ab. In Perl zB. so ungefähr:
> > > s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/
> >
> > Perl hört sich gut an.
> > Wäre es unverschämt von mir, wenn ich um einen perlaufruf bitten
> > würde. Dann könnte ich mir ein bash-script bauen das die ganzen 58
> > File nacheinander abklappert.
>
> Wenn du es mit einem Bash-Script machen willst, dann nimm doch sed.
>
> oldfile = ""
> newfile = ""
> sed 's/(^|\|)(\d+)\.(\d{1,2}\|)/\1\2,\3/g' $oldfile > $newfile

*Argh* - bei sed sind es mal wieder Basic-RegExp, also immer schön ein 
Backslash vor die Klammern und das Oder-Zeichen "|".

sed 's/\(^\||\)\([0-9]*\)\.\([0-9]\{1,2\}|\)/\1\2,\3/g' $oldfile > 
$newfile

> Das kannst du dir jetzt noch schön in eine Schleife einbasteln ;-)
>
> Und testen! Weil: Wie immer ohne Gewähr *g*

Hab ich gerade getestet, sollte klappen. Zumindest, solange auch das 
letzte Datenfeld mit einem "|" abgeschlossen wird (in deiner ersten 
Mail stand es so).

Ansonsten sollte das hier klappen (ist ergänzt um das Zeilenende als 
möglichen Feldabschluss):

sed 's/\(^\||\)\([0-9]*\)\.\([0-9]\{1,2\}\)\(|\|$\)/\1\2,\3\4/g' 
$oldfile > $newfile

(alles in eine Zeile)

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Helmut Wollmersdorfer

Roland M. Kruggel wrote:


Perl hört sich gut an.
Wäre es unverschämt von mir, wenn ich um einen perlaufruf bitten 
würde. Dann könnte ich mir ein bash-script bauen das die ganzen 58 
File nacheinander abklappert.


In Perl kannst auch Files mit einer Schleife durchlaufen, bzw. ganze 
sogar ganze Hierarchien von Verzeichnissen.


Eine entsprechende Subroutine in Perl sieht etwa so aus:

sub read_files {
my (
$dir,
$sub_dir,
$file_extension,
$hash_ref
) = @_;

my $current_dir = check_dir ($dir);
local(*CURDIR);

print STDERR "opening dir \"$current_dir\" for read\n"  if $VERBOSE 
>= 2;
opendir(CURDIR,"$current_dir") or die "Can't open directory 
\"$current_dir\"\n";

#rewinddir(DIR);
print STDERR "selecting files\n"  if $VERBOSE >= 3;
my @entries = readdir CURDIR ;
#my @files = grep {/^.+\.$file_extension$/} readdir CURDIR ;
closedir (CURDIR);

#print "dir entries \t [ @files ] \n"  if $VERBOSE >= 3;

for my $dir_entry ( sort @entries ) {
my $target = $current_dir . $dir_entry;

if ( $dir_entry =~ m/^$file_extension$/ ) {
read_file ($current_dir, $dir_entry, $hash_ref) if -f $target;
}
else {
if ( $dir_entry =~ m/^(\.\w|\w).*$/ ) {
read_files ($target, $sub_dir, 
$file_extension,$hash_ref ) if -d $target;

}
}
}
}

Bei komplexeren Sachen ist Perl halt flexibler, aber das Erlernen zahlt 
sich aus.


In Deinem Fall würde ein Shell-Script mit den üblichen Utilities auch 
reichen. Ist halt eine Geschmacksfrage, ob man sich tiefer in bash & co 
oder lieber gleich in Perl einarbeitet.


Mir war für das Umformatieren sed, awk, find, sort, tr, uniq etc. auf 
die Dauer zu mühsam, weshalb ich Perl bevorzuge.


Helmut Wollmersdorfer


--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/


Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: suche regexp

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo Roland M. Kruggel, hallo auch an alle anderen

Dienstag, 20. Juni 2006 16:27 - Roland M. Kruggel wrote:
> Am Dienstag, 20. Juni 2006 16:11 schrieb Thorsten Haude:
> > Moin,
> >
> > * Roland M. Kruggel wrote (2006-06-20 14:28):
> > >Ich muss jetzt in einigen Felder den Punkt durch ein Komma
> > > ersetzen. Eigentlich trivial wenn da nicht das Datum und das
> > > Textfeld drin wäre. Dort müssen die Punkte bleiben.
> >
> > Also:
> > Zeilenanfang oder | (^||)
> > dann beliebig viele Ziffern \d*
> > dann ein Punkt  \.
> > dann ein oder zwei Ziffern  \d{1,2}
> > dann ein |  |
>
> Verstanden
>
> > Ergebnis:
> > /(^|\|)/\d*\.\d{1,2}|/
>
>  ^
> ist dann nicht der zuviel?
>
> > Wenn die Zahlen wie in Deutschland üblich immer eine Vorkommastelle
> > haben sollen, dann mußt Du den * durch ein + ersetzen.
> >
> > Wie Du den Punkt ersetzt hängt von der Umgebung und Deinen
> > Vorlieben ab. In Perl zB. so ungefähr:
> > s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/
>
> Perl hört sich gut an.
> Wäre es unverschämt von mir, wenn ich um einen perlaufruf bitten
> würde. Dann könnte ich mir ein bash-script bauen das die ganzen 58
> File nacheinander abklappert.

Wenn du es mit einem Bash-Script machen willst, dann nimm doch sed.

oldfile = ""
newfile = ""
sed 's/(^|\|)(\d+)\.(\d{1,2}\|)/\1\2,\3/g' $oldfile > $newfile

Das kannst du dir jetzt noch schön in eine Schleife einbasteln ;-)

Und testen! Weil: Wie immer ohne Gewähr *g*

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo Thorsten Haude, hallo auch an alle anderen

Dienstag, 20. Juni 2006 16:21 - Thorsten Haude wrote:
> Moin,
>
> * Thorsten Haude wrote (2006-06-20 16:11):
> >s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/
>
> Falsch so sollte es gehen:
> s/(^|\|)(\d*)\.(\d{1,2}|)/\2,\3/

Autsch, das geht auch daneben. ;-)

Das lässt den | vor den Vorkommastellen unter den Tisch fallen. 

RegExp sind was tolles, aber man muss auch höllisch aufpassen und auf 
jeden Fall ausgiebig testen, bevor man an wichtige Daten rangeht.

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo Roland M. Kruggel, hallo auch an alle anderen

Dienstag, 20. Juni 2006 15:58 - Roland M. Kruggel wrote:
> > > Gemeinsamkeiten der Decimalfelder:
> > > * nur zahlen
> > > * beliebige Vorkomma-Stellen
> > > * eine oder zwei Nachkommastellen
> > > * am ende immer ein '|'
> > > * immer ein Punkt als Dezimalzeichen
> >
> > vim:
> > :%s/\(\d\+\)\.\(\(\d\|\d\d\)|\)/\1,\2/g
>
> Megagei. :)
> Ich frage jetzt nicht nach dem Wie. Hut ab, Michael.
> Danke.

Vorsicht! Nicht ungetestet übernehmen.

1. Viele RegExp-Dialekte interpretieren \( bzw \) als das jeweilige 
Klammerzeichen. Die Klammer zum Gruppieren darf dann nicht hinter einem 
Backslash stehen.

2. Zur Erklärung (muss man sich mal mit befassen, ist gar nicht soo 
schwer):

s bedeutet: Tausche das, was nach dem nächsten Delimiter (hier: "/") 
steht, gegen das, was nach dem 2. Delimiter steht. Das g hinter dem 3. 
Delimiter heißt, dass das ganze global erfolgen soll.

Im ersten Bereich steht eine Klammer zur Gruppierung und in der Klammer 
das \d für ein Digit (Ziffer 0..9) und das + danach für mind. 1 Mal. 
Danach folgt ein Punkt (mit einem vorangestellten Backslash, sonst 
steht er für ein beliebiges Zeichen). Danach folgt eine zweite 
Klammergruppierung, in der ein Digit oder (dargestellt durch "|") zwei 
Digits stehen können, gefolgt von dem "|" als dein Datenbankdelimiter.

Jede Zeichenfolge, auf die diese Beschreibung zutrifft (mind. 1 Ziffer, 
dann ein Punkt, dann 1 oder 2 Ziffern und das "|"), wird nun durch das 
Folgende ersetzt (steht nach dem zweiten /):

\1 schreibt alles, auf das die erste Klammergruppierung passte. Danach 
kommt das Komma und dann mit \2 alles, auf das die 2. 
Klammergruppierung zutraf.

Ich hoffe, du findest mit dieser kleinen Beschreibung Gefallen an der 
Mächtigkeit Regulärer Ausdrücke ;-)

Eine Alternative (aber auch ohne Gewähr, bitte vorher testen) findest du 
in meiner anderen Mail.

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo Matthias Houdek, hallo auch an alle anderen

Dienstag, 20. Juni 2006 16:12 - Matthias Houdek wrote:
> [...]
> s/((^|\|)\d+).(\d{1,2}\|)/\1,\3/g
  ^^
Urps, da muss natürlich noch ein Backslash vor den Punkt.

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Roland M. Kruggel
Am Dienstag, 20. Juni 2006 16:11 schrieb Thorsten Haude:
> Moin,
>
> * Roland M. Kruggel wrote (2006-06-20 14:28):
> >Ich muss jetzt in einigen Felder den Punkt durch ein Komma
> > ersetzen. Eigentlich trivial wenn da nicht das Datum und das
> > Textfeld drin wäre. Dort müssen die Punkte bleiben.
>
> Also:
> Zeilenanfang oder | (^||)
> dann beliebig viele Ziffern \d*
> dann ein Punkt  \.
> dann ein oder zwei Ziffern  \d{1,2}
> dann ein |  |

Verstanden

> Ergebnis:
> /(^|\|)/\d*\.\d{1,2}|/
 ^
ist dann nicht der zuviel?

> Wenn die Zahlen wie in Deutschland üblich immer eine Vorkommastelle
> haben sollen, dann mußt Du den * durch ein + ersetzen.
>
> Wie Du den Punkt ersetzt hängt von der Umgebung und Deinen
> Vorlieben ab. In Perl zB. so ungefähr:
> s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/

Perl hört sich gut an.
Wäre es unverschämt von mir, wenn ich um einen perlaufruf bitten 
würde. Dann könnte ich mir ein bash-script bauen das die ganzen 58 
File nacheinander abklappert.


-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Re: suche regexp

2006-06-20 Diskussionsfäden Thorsten Haude
Moin,

* Thorsten Haude wrote (2006-06-20 16:11):
>s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/

Falsch so sollte es gehen:
s/(^|\|)(\d*)\.(\d{1,2}|)/\2,\3/


Thorsten
-- 
Why do we drink cow's milk? Who was the first guy who first
looked at a cow and said "I think I'll drink whatever comes
out of these things when I squeeze 'em!"?
- Calvin


pgpb2uU6KYnz9.pgp
Description: PGP signature


Re: suche regexp

2006-06-20 Diskussionsfäden Thorsten Haude
Moin,

* Matthias Houdek wrote (2006-06-20 16:12):
>Folgendes sollte es aber treffen (ungetestet, ggf. die Syntax je nach 
>verwendetem Dialekt anpassen, z.B. Klammern "escapen" wie oben):
>
>s/((^|\|)\d+).(\d{1,2}\|)/\1,\3/g
   ^
Da war ich mir nicht so sicher, ob das gebraucht wird.


>Meiner Meinung nach sollte hier nach dem Komma der Inhalt der 3. Klammer 
>kommen (\3), denn die 2. Klammer enthält ja den Zeilenanfang oder den 
>vorhergehenden "|".

Da war ich auch falsch.


Thorsten
-- 
I'd rather have friends who care than friends who agree with me.
- Arlo Guthrie


pgpgcqsGa8spf.pgp
Description: PGP signature


Re: suche regexp

2006-06-20 Diskussionsfäden Thorsten Haude
Moin,

* Roland M. Kruggel wrote (2006-06-20 14:28):
>Ich muss jetzt in einigen Felder den Punkt durch ein Komma ersetzen. 
>Eigentlich trivial wenn da nicht das Datum und das Textfeld drin 
>wäre. Dort müssen die Punkte bleiben.

Also:
Zeilenanfang oder | (^||)
dann beliebig viele Ziffern \d*
dann ein Punkt  \.
dann ein oder zwei Ziffern  \d{1,2}
dann ein |  |

Ergebnis:
/(^|\|)/\d*\.\d{1,2}|/

Wenn die Zahlen wie in Deutschland üblich immer eine Vorkommastelle
haben sollen, dann mußt Du den * durch ein + ersetzen.

Wie Du den Punkt ersetzt hängt von der Umgebung und Deinen Vorlieben
ab. In Perl zB. so ungefähr:
s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/


Thorsten
-- 
Anyone who is capable of getting themselves made President
should on no account be allowed to do the job.
- The Book


pgpfjZcanBJOl.pgp
Description: PGP signature


Re: suche regexp

2006-06-20 Diskussionsfäden Roland M. Kruggel
Am Dienstag, 20. Juni 2006 14:51 schrieb Michael Ott:
> > Gemeinsamkeiten der Decimalfelder:
> > * nur zahlen
> > * beliebige Vorkomma-Stellen
> > * eine oder zwei Nachkommastellen
> > * am ende immer ein '|'
> > * immer ein Punkt als Dezimalzeichen
>
> vim:
> :%s/\(\d\+\)\.\(\(\d\|\d\d\)|\)/\1,\2/g

Eine Klitzekleinigkeit bittr noch.
Da es sich um mehrere Dateien handelt (ca. 50) wollte ich eine map ind 
der .vimrc definieren.

map  :%s/\(\d\+\)\.\(\(\d\|\d\d\)|\)/\1,\2/g

geht schief. Mit der Fehlermeldung
--->
[EMAIL PROTECTED]:~/develop/keim/keim.exp$ vi kalk200161.unl
Fehler beim Ausführen von "/home/rkruggel/.vimrc":
Zeile   11:
E10: \ sollte von /, ? or & gefolgt werden
Drücken Sie die EINGABETASTE oder geben Sie einen Befehl ein
---<

Du hast doch bestimmt eine Lösung auch für dieses Problem :)

-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Re: suche regexp

2006-06-20 Diskussionsfäden Matthias Houdek
Hallo Michael Ott, hallo auch an alle anderen

Dienstag, 20. Juni 2006 14:51 - Michael Ott wrote:
> Hallo Roland!
>
> > ich brauche mal die spezialisten für regexp, sed, awk oder
> > ähnliches.
> >
> > Folgendes Problem tritt bei einer Konvertierung einer Datenbank
> > auf. Es gibt folgende Datensätze ind dieser und ähnlicher Form.
> > Delimiter ist immer '|'
> >
> > --->
> > 30102136030.0|20|30102|silo 22.0|136|30|1|
> >+  -
> > GH-Schale 7086.00 782|10.0|7421|0|stk|33,83|0,00|
> >   -
> > 0,00|0.0|33,83|2.0|26.03.2001|1.0|30102|121|1|
> >   + +-  -  +
> > kroeger|2001-03-26 15:55:22|102|||1|0|0|
> > ---<
> >
> > Ich muss jetzt in einigen Felder den Punkt durch ein Komma
> > ersetzen. Eigentlich trivial wenn da nicht das Datum und das
> > Textfeld drin wäre. Dort müssen die Punkte bleiben.
> >
> > Gemeinsamkeiten der Decimalfelder:
> > * nur zahlen
> > * beliebige Vorkomma-Stellen
> > * eine oder zwei Nachkommastellen
> > * am ende immer ein '|'
> > * immer ein Punkt als Dezimalzeichen
>
> vim:
> :%s/\(\d\+\)\.\(\(\d\|\d\d\)|\)/\1,\2/g

auf gut Deutsch:

tausche (mind. 1 Ziffer).(Ziffer od. 2 Ziffern und "|") gegen (Inhalt 
der 1. Klammer),(Inhalt der 2. Klammer) - und das überall

Das träfe auch auf "silo 22.0" zu. Außerdem wäre IMHO für die 2. Klammer 
(die Nachkommastellen) folgendes einfacher: (\d{1,2}\|)

Folgendes sollte es aber treffen (ungetestet, ggf. die Syntax je nach 
verwendetem Dialekt anpassen, z.B. Klammern "escapen" wie oben):

s/((^|\|)\d+).(\d{1,2}\|)/\1,\3/g

Meiner Meinung nach sollte hier nach dem Komma der Inhalt der 3. Klammer 
kommen (\3), denn die 2. Klammer enthält ja den Zeilenanfang oder den 
vorhergehenden "|".

hth

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: suche regexp

2006-06-20 Diskussionsfäden Roland M. Kruggel

> >
> > Gemeinsamkeiten der Decimalfelder:
> > * nur zahlen
> > * beliebige Vorkomma-Stellen
> > * eine oder zwei Nachkommastellen
> > * am ende immer ein '|'
> > * immer ein Punkt als Dezimalzeichen
>
> vim:
> :%s/\(\d\+\)\.\(\(\d\|\d\d\)|\)/\1,\2/g

Megagei. :)
Ich frage jetzt nicht nach dem Wie. Hut ab, Michael. 
Danke.

-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Re: suche regexp

2006-06-20 Diskussionsfäden Michael Ott
Hallo Roland!

> ich brauche mal die spezialisten für regexp, sed, awk oder ähnliches.
> 
> Folgendes Problem tritt bei einer Konvertierung einer Datenbank auf.
> Es gibt folgende Datensätze ind dieser und ähnlicher Form. Delimiter 
> ist immer '|'
> 
> --->
> 30102136030.0|20|30102|silo 22.0|136|30|1|
>+  -
> GH-Schale 7086.00 782|10.0|7421|0|stk|33,83|0,00|
>   -
> 0,00|0.0|33,83|2.0|26.03.2001|1.0|30102|121|1|
>   + +-  -  +
> kroeger|2001-03-26 15:55:22|102|||1|0|0|
> ---<
> 
> Ich muss jetzt in einigen Felder den Punkt durch ein Komma ersetzen. 
> Eigentlich trivial wenn da nicht das Datum und das Textfeld drin 
> wäre. Dort müssen die Punkte bleiben.
> 
> Gemeinsamkeiten der Decimalfelder:
> * nur zahlen
> * beliebige Vorkomma-Stellen
> * eine oder zwei Nachkommastellen
> * am ende immer ein '|'
> * immer ein Punkt als Dezimalzeichen

vim:
:%s/\(\d\+\)\.\(\(\d\|\d\d\)|\)/\1,\2/g

CU
 
  Michael  
  
-- 
,''`.   Michael Ott, e-mail: michael at zolnott dot de
   : :' :   Debian SID on Thinkpad T43: 
   `. `'http://www.zolnott.de/laptop/ibm-t43-uc34nge.html 
 `- 
Jeden Mittwoch von 21 - 24 Uhr. Zosh! auf Radio Z. 
Das Härteste, was der Musikmarkt zu bieten hat. http://www.zosh.de
Online hören: http://www.radio-z.net 



suche regexp

2006-06-20 Diskussionsfäden Roland M. Kruggel
Hallo Liste,

ich brauche mal die spezialisten für regexp, sed, awk oder ähnliches.

Folgendes Problem tritt bei einer Konvertierung einer Datenbank auf.
Es gibt folgende Datensätze ind dieser und ähnlicher Form. Delimiter 
ist immer '|'

--->
30102136030.0|20|30102|silo 22.0|136|30|1|
   +  -
GH-Schale 7086.00 782|10.0|7421|0|stk|33,83|0,00|
  -
0,00|0.0|33,83|2.0|26.03.2001|1.0|30102|121|1|
  + +-  -  +
kroeger|2001-03-26 15:55:22|102|||1|0|0|
---<

Ich muss jetzt in einigen Felder den Punkt durch ein Komma ersetzen. 
Eigentlich trivial wenn da nicht das Datum und das Textfeld drin 
wäre. Dort müssen die Punkte bleiben.

Gemeinsamkeiten der Decimalfelder:
* nur zahlen
* beliebige Vorkomma-Stellen
* eine oder zwei Nachkommastellen
* am ende immer ein '|'
* immer ein Punkt als Dezimalzeichen

Die Felder die geändert werden müssen habe ich mit einem '+' 
gekennzeichnet, die die nicht geändert werden dürfen mit einem '-'.

Danke schon mal im vorraus.


-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5



Re: Für die sed / RegExp Experten

2004-01-27 Diskussionsfäden Christian Schmidt
Hallo Matthias,

Matthias Hentges, 26.01.2004 (d.m.y):

> Folgendes Problem:
> 
> echo "2.6.2-rc1-mm3"| sed s/\-mm[1-99]//
> 
> bringt als Ergebnis "2.6.2-rc1".
> 
> Ich möchte aber genau das Gegenteil erhalten, nähmlich
> 
> "-mm3"

Wenn es Dir nur um die letzten drei Zeichen geht _und_ die gesamte
Zeichenkette immer die gleiche Laenge hat, koenntest Du statt mit sed
in diesem Fall mit "cut" arbeiten...

Gruss,
Christian
-- 
Aufopferung ist leichter als Rechtschaffenheit.
-- Jean Paul


pgp0.pgp
Description: PGP signature


Re: Für die sed / RegExp Experten

2004-01-27 Diskussionsfäden Tobias Hilbricht
Am Dienstag, 27. Januar 2004 09:32 schrieb Andreas Schmidt:

> > Die manpage von SED war nicht wirklich erleuchtend
>
> Ich hoffe, etwas hilfreicher sein zu koennen. :-)

Hallo Andreas,
mir hat es auf jeden Fall Lust gemacht, sed genauer anzuschauen - gute, 
verständliche Erklärung!

Mit freundlichen Grüßen

Tobias Hilbricht


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Für die sed / RegExp Experten [SOLVED]

2004-01-27 Diskussionsfäden Matthias Hentges
Hallo!

Vielen Dank an Christoph und Uwe für die RegExp und ganz besonders an
Andreas für die super Erklärung!!

Leider ist solch erweiterte RegExp noch etwas zu hoch für mich, aber der
Tip mit /\.*(irgendwas\)/\1/ ist Gold wert.

Vielen Dank nochmal :)

-- 

Matthias Hentges 
Cologne / Germany

[www.hentges.net] -> PGP welcome, HTML tolerated
ICQ: 97 26 97 4   -> No files, no URL's

My OS: Debian Woody. Geek by Nature, Linux by Choice


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Für die sed / RegExp Experten

2004-01-27 Diskussionsfäden Andreas Schmidt
On 2004.01.26 11:15, Matthias Hentges wrote:
Hallo Liste!

Ich lese mittlerweile seit zwei Stunden diverse sed HowTo's aber ich
bin
wohl irgendwie zu dumm.
Folgendes Problem:

echo "2.6.2-rc1-mm3"| sed s/\-mm[1-99]//

bringt als Ergebnis "2.6.2-rc1".

Ich möchte aber genau das Gegenteil erhalten, nähmlich

"-mm3"

Also quasi eine invertierte RegExp, wobei aber nur der "-mm[1-99]  
Teil
des Strings bekannt ist.

Kenne mich mit sed-Syntax zwar nicht sonderlich aus, aber dafuer ein  
bisschen mit PERL, und reg-exes sind ja vom Prinzip her eh ueberall  
aehnlich. :-)

Zunaechst einmal a line recklessly stolen from Christoph Maurer  
<[EMAIL PROTECTED]>:

echo "2.6.2-rc1-mm3"| sed "s/.*\(-mm[0-9]\{1,\}\)/\1/"

Ich verlasse mich einfach mal drauf, dass die Syntax bei ihm  
stimmt. :-)

Könnte mir da jemand auf die Sprünge helfen? Möglichst mit Erklärung
:)
Ein Schubs in die richtige Richtung wäre schon genug.
Und jetzt auf meinem eigenen Mist gewachsen  der Schubs:

s/expression 1/expression 2/ sucht in einer Zeichenkette nach dem  
Ausdruck "expression 1" und ersetzt ihn mit "expression 2". Du hast  
zwar in "2.6.2-rc1-mm3" korrekt nach "\-mm[1-99]" gesucht, das dann  
aber mit nichts ersetzt.

Bei Christoph setzt sich der Suchstring so zusammen:
.*	alles uninteressante, was vor dem gesuchten Teil des Ausdruckes  
	steht
-mm[0-9]{1,}	der gesuchte Teil

Zwischen den eckigen Klammern ist ein Bereich erlaubter Zeichen  
angegeben. Damit wird aber immer nur nach _einem_ Zeichen gesucht. [1- 
99] wuerde zB nicht funktionieren, um "23" zu finden, weil die 99 eben  
nicht fuer neunundneunzig steht, sondern einfach nur das Zeichen "9"  
doppelt in der Liste erlaubter Zeichen vorkommt. Effektiv laesst du  
also nur die Ziffern 1-9 zu, schliesst aber 0 aus. Ausserdem suchst du  
nur nach  einer einzigen Ziffer. Statt "23" wuerde also nur "2"  
gefunden werden.

Christoph hat jetzt mit [0-9] den gueltigen Bereich um die 0 erweitert  
und mit ein bisschen Magic umgeben:
Mit {1,} hat er festgelegt, dass das vorherstehende Zeichen mindestens  
einmal vorkommen muss. Mit {1,3} haette er auch sagen koennen, dass es  
mindestens einmal, jedoch nicht haeufiger als dreimal vorkommen darf; 
und mit {2} muesste es genau zweimal vorkommen.
Den gesuchten Ausdruck hat er mit den runden Klammern als Teilausdruck  
festgelegt, auf den er spaeter Bezug nehmen kann. Das macht er im  
zweiten Teil mit \1:
	s/.*\(-mm[0-9]\{1,\}\)/\1/
Die \1 ist eine interne Variable, die einfach die Position des  
Ausdruckes in runden Klammern angibt. Der gesamte Ausdruck .*(-mm[0-9] 
{1,}) wird also durch den ersten eingeklammerten Teilausdruck ersetzt.

Weil das so kompliziert ausgedrueckt ist, nochmal ein anderes Beispiel.
Deinen Suchausdruck koennte man zB folgendermassen schreiben:
/\(.*\)\(-\)\(mm[0-9]\{1,\}\)/
Dann waere:
\1  \(.*\)
\2  \(-\)
\3  \(mm[0-9]\{1,\}\)
Mit s/\(.*\)\(-\)\(mm[0-9]\{1,\}\)/\3\2\1/ koenntest du dann aus  
"2.6.2-rc1-mm3" "mm3-2.6.2-rc1" machen...

Die manpage von SED war nicht wirklich erleuchtend

Ich hoffe, etwas hilfreicher sein zu koennen. :-)


TIA
--
Matthias Hentges
Cologne / Germany
Schoenen Gruss,

Andreas

--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Für die sed / RegExp Experten

2004-01-27 Diskussionsfäden Uwe Kerstan
* Matthias Hentges <[EMAIL PROTECTED]> [26-01-2004 11:15]:

> echo "2.6.2-rc1-mm3"| sed s/\-mm[1-99]//
> 
> bringt als Ergebnis "2.6.2-rc1".
> 
> Ich möchte aber genau das Gegenteil erhalten, nähmlich
> 
> "-mm3"
 
$ echo "2.6.2-rc1-mm3"| sed s#.*\-##
mm3
$ echo "2.6.2-rc1-mm3"| sed s#.*\-#\-#
-mm3


pgp0.pgp
Description: PGP signature


Re: Für die sed / RegExp Experten

2004-01-27 Diskussionsfäden Christoph Maurer
* Am Mon, 26 Jan 2004 schrieb Matthias Hentges:
> Hallo Liste!
> 
> Ich lese mittlerweile seit zwei Stunden diverse sed HowTo's aber ich bin
> wohl irgendwie zu dumm.
> 
> Folgendes Problem:
> 
> echo "2.6.2-rc1-mm3"| sed s/\-mm[1-99]//
> 
> bringt als Ergebnis "2.6.2-rc1".
> 
> Ich möchte aber genau das Gegenteil erhalten, nähmlich
> 
> "-mm3"
> 
echo "2.6.2-rc1-mm3"| sed "s/.*\(-mm[0-9]\{1,\}\)/\1/"

Gruß

Christoph 



-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Für die sed / RegExp Experten

2004-01-26 Diskussionsfäden Matthias Hentges
Hallo Liste!

Ich lese mittlerweile seit zwei Stunden diverse sed HowTo's aber ich bin
wohl irgendwie zu dumm.

Folgendes Problem:

echo "2.6.2-rc1-mm3"| sed s/\-mm[1-99]//

bringt als Ergebnis "2.6.2-rc1".

Ich möchte aber genau das Gegenteil erhalten, nähmlich

"-mm3"

Also quasi eine invertierte RegExp, wobei aber nur der "-mm[1-99] Teil
des Strings bekannt ist.

Könnte mir da jemand auf die Sprünge helfen? Möglichst mit Erklärung :)
Ein Schubs in die richtige Richtung wäre schon genug.

Die manpage von SED war nicht wirklich erleuchtend

TIA
-- 

Matthias Hentges 
Cologne / Germany

[www.hentges.net] -> PGP welcome, HTML tolerated
ICQ: 97 26 97 4   -> No files, no URL's

My OS: Debian Woody. Geek by Nature, Linux by Choice


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-21 Diskussionsfäden Lars Weissflog
On Tue, 2003-10-21 at 14:10, Reinhold Plew wrote:
> Hab mich wahrscheinlich nicht genau genug ausgedrückt, sorry.
> 
> Ich bezog mich auf
> 
> ---snip---
> Wenn ich "If any criteria are met" mit den oben angeführten 
> Bedingungen verwende, landen _alle_ debian-user-german Mails in XFree.
> ---snap---
> 
> weil ich denke, dass, wenn Du "If any criteria are met" verwendest, 
> gleich die erste Regel greift und die zweite gar nicht mehr erreicht 
> wird. Von daher meine Frage.
Ja, das ist klar. Davon gehe ich auch aus. Greift die erste, bricht er
ab und führt seine Aufgaben aus. Greift die erste nicht, prüft er die
zweite etc.

> Ich würde mal vermuten, das Du Part="sexp" bzw. den Valueblock 
> daraus irgendwie in Part="mlist" einbauen müsstest, dann sollte Dein 
> Kriterium (s.o.) auch greifen.
> 
Ich will ja gar nicht auf xml-ebene rumpfuschen, denn ich denke nicht,
dass ich damit weit komme. Der Filter-Code von Evolution wertet den
xml-Kram ja nur aus. Ich denke, es ist eine Beschränkung in den
Fähigkeiten von Evo. Einen Filter wie ich ihn will kann ich einfach
nicht bauen, ich bräuchte eine regexp die das Kriterium 2) ersetzt,
damit dieses die ODER-Verknüpfung beachtet.

Ich habe mich auf der evolution-liste eingetragen. Wenn ich da eine
brauchbare Lösung auftreiben kann, poste ich sie hier.

Danke auf jeden Fall erstmal fürs "Mitdenken".

Gruß
Lars
> >
-- 
Lars Weissflog | [EMAIL PROTECTED] dot DE
Registered Linux User # 329826




--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-21 Diskussionsfäden Reinhold Plew
Hallo Lars,

Lars Weissflog schrieb:
Hi Reinhold,

On Mon, 2003-10-20 at 23:05, Reinhold Plew wrote:

Hallo Lars,

habe zwar noch nicht viel mit xml gemacht, aber...


Hat ja auch primär nix mit xml zu tun. Einbetten tut Evolution die
Filter halt in xml, die regexp die ich probiert habe landen alle in dem
~/evolution/filters.xml.

Lars Weissflog schrieb:


Das war mein Kriterium, das ich gern bauen würde, wobei die Schlagwörter
unter 2) logisch durch ODER (nicht-exklusiv) verbunden werden sollen.
If ALL CRITERIA ARE MET:
CRITERIA:
  1) LIST IS: debian-user-german
  2) SUBJECT CONTAINS: xserver xfree xf86config xconfig x-server
ACTIONS:
  1) MOVE MESSAGE TO FOLDER Inbox/linux-lists/deb-u-ger/XFree
  2) STOP processing this message


[...]

was passiert, wenn Du eine Nachricht bekommst, welche
1. nicht von debian-user-german kommt und
2. im Subject xserver xfree xf86config xconfig x-server enthält
?
Was soll dann passieren? Der oben genannte Filter soll nicht ansprechen,
weil die Nachricht ja nicht zu unserer Liste gehört. Würde er auch
nicht, da ALL CRITERIA ARE MET nicht gilt (false, da 1) nicht erfüllt).
Die Nachricht würde dann in der Inbox bleiben, wo ich mich ihrer
annehmen würde. Wäre sie von einer anderen Liste, für die ähnliche
Filter existieren, würde einer von denen greifen und sie in den
entsprechenden Ordner packen.
Hab mich wahrscheinlich nicht genau genug ausgedrückt, sorry.

Ich bezog mich auf

---snip---
Wenn ich "If any criteria are met" mit den oben angeführten 
Bedingungen verwende, landen _alle_ debian-user-german Mails in XFree.
---snap---

weil ich denke, dass, wenn Du "If any criteria are met" verwendest, 
gleich die erste Regel greift und die zweite gar nicht mehr erreicht 
wird. Von daher meine Frage.
Ich würde mal vermuten, das Du Part="sexp" bzw. den Valueblock 
daraus irgendwie in Part="mlist" einbauen müsstest, dann sollte Dein 
Kriterium (s.o.) auch greifen.

Gruss
Reinhold
Gruß
Lars

Gruss
Reinhold

Hüllfööh!

Gruß
Lars



--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-21 Diskussionsfäden Lars Weissflog
Hi Reinhold,

On Mon, 2003-10-20 at 23:05, Reinhold Plew wrote:
> Hallo Lars,
> 
> habe zwar noch nicht viel mit xml gemacht, aber...

Hat ja auch primär nix mit xml zu tun. Einbetten tut Evolution die
Filter halt in xml, die regexp die ich probiert habe landen alle in dem
~/evolution/filters.xml.

> Lars Weissflog schrieb:

Das war mein Kriterium, das ich gern bauen würde, wobei die Schlagwörter
unter 2) logisch durch ODER (nicht-exklusiv) verbunden werden sollen.
> > If ALL CRITERIA ARE MET:
> > CRITERIA:
> >1) LIST IS: debian-user-german
> >2) SUBJECT CONTAINS: xserver xfree xf86config xconfig x-server
> > ACTIONS:
> >1) MOVE MESSAGE TO FOLDER Inbox/linux-lists/deb-u-ger/XFree
> >2) STOP processing this message
> > 

> [...]
> 
> was passiert, wenn Du eine Nachricht bekommst, welche
> 1. nicht von debian-user-german kommt und
> 2. im Subject xserver xfree xf86config xconfig x-server enthält
> ?
> 
Was soll dann passieren? Der oben genannte Filter soll nicht ansprechen,
weil die Nachricht ja nicht zu unserer Liste gehört. Würde er auch
nicht, da ALL CRITERIA ARE MET nicht gilt (false, da 1) nicht erfüllt).
Die Nachricht würde dann in der Inbox bleiben, wo ich mich ihrer
annehmen würde. Wäre sie von einer anderen Liste, für die ähnliche
Filter existieren, würde einer von denen greifen und sie in den
entsprechenden Ordner packen.

Gruß
Lars

> Gruss
> Reinhold
> 
> > Hüllfööh!
> > 
> > Gruß
> > Lars
> > 
> > 
-- 
LarsWeissflog
[EMAIL PROTECTED] dot DE



--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-21 Diskussionsfäden Lars Weissflog
Hi Hans-Georg,

das mit den vFoldern ist 'ne Idee. Dann könnte ich sie erst mit einem
Filter nach Mailing-Listen sortieren und dann vFolder für die subjects
erstellen, die jeweils nur auf einen bestimmten "Liste-Ordner"
zugreifen. 

Allerdings hat das den Nachteil, dass der "echte" Folder so groß wird,
dass das schöne "dedupe"-Script das ich mühsam ergoogelt habe nicht mehr
funktioniert. Das greift auf formail zurück, und das scheint etwas gegen
mbox-files mit mehr als 100MB zu haben. Daher wollte ich schöne Häppchen
machen, die formail verdauen kann. 

Naja, ich suche mal weiter nach dem regex-Kram. Vielleicht muss ich doch
mal die evo-liste befragen. Leider gibt es bei Ximian keine Suchfunktion
für die Archive und google liefert auch nichts für die, weil google die
gar nicht indiziert hat (AFAIK).

Wenn ich eine Lösung habe, poste ich sie hier.

Gruß
Lars



On Mon, 2003-10-20 at 23:30, Hans-Georg Bork wrote:
> Moin,
> 
> On Mon, 2003-10-20 at 20:55, Lars Weissflog wrote:
> > Hi zusammen, 
> > 
> > nachdem ich den halben Tag google gequält habe, frage ich erst mal euch
> > auf deutsch, bevor ich auf die ximian-listen aufspringe. 
> > 
> > Ich würde gern meine Filter in Evolution (1.4) aufbohren. Von hause aus
> > kennt Evo nur "if all criteria are met" oder "if any criteria are met". 
> 
> hast Du schon mal mit vFoldern "gespielt"? Die lassen sich etwas besser
> konfigurieren ...
> 
> Gruss
>   -- hgb
-- 
LarsWeissflog
[EMAIL PROTECTED] dot DE



--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-21 Diskussionsfäden Lars Weissflog
Sorry, habe die noch mal gesendet, weil die erste zusammen mit den
Antworten durch meine Filter sonstwo gelandet sind und ich dachte, sie
wäre nicht auf der Liste angekommen. Diese hier bitte ignorieren. 
Sorry
Lars



On Tue, 2003-10-21 at 12:47, Lars Weissflog wrote:
> Hi zusammen, 
> 
> nachdem ich den halben Tag google gequält habe, frage ich erst mal euch
> auf deutsch, bevor ich auf die ximian-listen aufspringe. 
> 
> Ich würde gern meine Filter in Evolution (1.4) aufbohren. Von hause aus
> kennt Evo nur "if all criteria are met" oder "if any criteria are met". 
> 
> Nun bauen sich meine Filter - da ich einige Listen abonniert habe - so
> auf, das ich zunächst nach der Liste filtere und dann nach bestimmten
> Schlüsselwörtern im subject. Für unsere Liste schaue ich also erstmal ob
> die mail von debian-user-german kommt, und dann z.B. ob es sich um
> XServer ODER xfree ODER xf86config ODER xconfig handelt (nur so als
> Beispiel). Nun war mir so, als ob Evo die Wörter im Feld "subject
> contains" case-insensitive behandelt und durch ODER verknüpft. Damit
> müsste ein Filter in der Art (verbalisiert, unten steht der xml-code):
> 
> If ALL CRITERIA ARE MET:
> CRITERIA:
>1) LIST IS: debian-user-german
>2) SUBJECT CONTAINS: xserver xfree xf86config xconfig x-server
> ACTIONS:
>1) MOVE MESSAGE TO FOLDER Inbox/linux-lists/deb-u-ger/XFree
>2) STOP processing this message
> 
> jede Nachricht unserer Liste in den angegebenen Ordner schubsen, wenn im
> topic eines der gegebenen Wörter vorkommt. Das funktioniert aber nicht.
> Wenn ich "If any criteria are met" mit den oben angeführten Bedingungen
> verwende, landen _alle_ debian-user-german Mails in XFree. Lasse ich die
> debian-user-german Bedingung weg und verwende "if any criteria are met",
> dann versteht er die angegebenen Begriffe als durch ODER verbunden und
> das ganze funktioniert. Leider landen dann aber unter Umständen auch
> Nachrichten von anderen Listen in dem deb-u-ger/XFree Ordner, die da gar
> nicht hingehören. Das ließe sich über die Reihenfolge der Filter regeln,
> aber wenn mehrere Linux-Groups (wie bei mir) da sind, dann geht es immer
> in einer oder der anderen Richtung schief.
> 
> Also dachte ich, ersetze ich die "subject contains" durch eine
> "Expression"-Option. Laut Hilfe zu Evo verbirgt sich dahinter nämlich
> die Möglichkeit, regexs (Plural von regex?) zu verwenden. Mehr steht
> dazu leider nicht in der Hilfe, der dort vorhandene Link "regex"
> schmeißt mich auf die erste Seite der Evo-Doku. 
> Im Web habe ich hingegen - zumindest für ältere Evo-Versionen - gelesen,
> dass dieses "Expressions" keine regex sondern was anderes sind. Dann
> gibt es noch ein auswählbares Kriterium namens "regex" in dem
> Filter-Dialog, das jedoch nirgends dokumentiert scheint. Dazu gibt es
> dann ein Feld header oder body und die Möglichkeit eine regex
> einzugeben.
> 
> Kann mir jemand sagen, wie ich in Evolution regex verwende und wie die
> Syntax dafür lautet? Mit folgendem Eintrag erhalte ich 'nen Fehler bei
> der Filter-Anwendung, ich denke mal, weil "expressions" eben keine
> regexp sind oder die regexp-syntax in Evo eine andere ist als in grep,
> egrep, sed etc.
> 
> 
>   deb-u-ger: +xfree
>   
> 
>   
>   
> [EMAIL PROTECTED]
>   
> 
> 
>   
> \(xfree\)|\(xserver\)
>   
> 
>   
>   
> 
>   
>  uri="file:///home/moi/evolution/local/Inbox/subfolders/Linux-Lists/subfolders/deb-u-ger/subfolders/xfree"/>
>   
> 
> 
>   
> 
> 
> Verwende ich statt "expression" "regex", dann bekomme ich zwar keinen
> Fehler, aber die regex \(*XServer*\) (ja, ich suche erst mal nur nach
> einem Wort) wirkt auf ein Topic wie :
> 
> Re: XServer - umstieg von CRT auf TFT via dabconf
> 
> leider nicht. Die Nachricht bleibt wo sie ist.
> 
> Hüllfööh!
> 
> Gruß
> Lars
> 
> 
> -- 
> LarsWeissflog
> [EMAIL PROTECTED] dot DE
-- 
LarsWeissflog
[EMAIL PROTECTED] dot DE



--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-21 Diskussionsfäden Lars Weissflog
Hi zusammen, 

nachdem ich den halben Tag google gequält habe, frage ich erst mal euch
auf deutsch, bevor ich auf die ximian-listen aufspringe. 

Ich würde gern meine Filter in Evolution (1.4) aufbohren. Von hause aus
kennt Evo nur "if all criteria are met" oder "if any criteria are met". 

Nun bauen sich meine Filter - da ich einige Listen abonniert habe - so
auf, das ich zunächst nach der Liste filtere und dann nach bestimmten
Schlüsselwörtern im subject. Für unsere Liste schaue ich also erstmal ob
die mail von debian-user-german kommt, und dann z.B. ob es sich um
XServer ODER xfree ODER xf86config ODER xconfig handelt (nur so als
Beispiel). Nun war mir so, als ob Evo die Wörter im Feld "subject
contains" case-insensitive behandelt und durch ODER verknüpft. Damit
müsste ein Filter in der Art (verbalisiert, unten steht der xml-code):

If ALL CRITERIA ARE MET:
CRITERIA:
   1) LIST IS: debian-user-german
   2) SUBJECT CONTAINS: xserver xfree xf86config xconfig x-server
ACTIONS:
   1) MOVE MESSAGE TO FOLDER Inbox/linux-lists/deb-u-ger/XFree
   2) STOP processing this message

jede Nachricht unserer Liste in den angegebenen Ordner schubsen, wenn im
topic eines der gegebenen Wörter vorkommt. Das funktioniert aber nicht.
Wenn ich "If any criteria are met" mit den oben angeführten Bedingungen
verwende, landen _alle_ debian-user-german Mails in XFree. Lasse ich die
debian-user-german Bedingung weg und verwende "if any criteria are met",
dann versteht er die angegebenen Begriffe als durch ODER verbunden und
das ganze funktioniert. Leider landen dann aber unter Umständen auch
Nachrichten von anderen Listen in dem deb-u-ger/XFree Ordner, die da gar
nicht hingehören. Das ließe sich über die Reihenfolge der Filter regeln,
aber wenn mehrere Linux-Groups (wie bei mir) da sind, dann geht es immer
in einer oder der anderen Richtung schief.

Also dachte ich, ersetze ich die "subject contains" durch eine
"Expression"-Option. Laut Hilfe zu Evo verbirgt sich dahinter nämlich
die Möglichkeit, regexs (Plural von regex?) zu verwenden. Mehr steht
dazu leider nicht in der Hilfe, der dort vorhandene Link "regex"
schmeißt mich auf die erste Seite der Evo-Doku. 
Im Web habe ich hingegen - zumindest für ältere Evo-Versionen - gelesen,
dass dieses "Expressions" keine regex sondern was anderes sind. Dann
gibt es noch ein auswählbares Kriterium namens "regex" in dem
Filter-Dialog, das jedoch nirgends dokumentiert scheint. Dazu gibt es
dann ein Feld header oder body und die Möglichkeit eine regex
einzugeben.

Kann mir jemand sagen, wie ich in Evolution regex verwende und wie die
Syntax dafür lautet? Mit folgendem Eintrag erhalte ich 'nen Fehler bei
der Filter-Anwendung, ich denke mal, weil "expressions" eben keine
regexp sind oder die regexp-syntax in Evo eine andere ist als in grep,
egrep, sed etc.


  deb-u-ger: +xfree
  

  
  
[EMAIL PROTECTED]
  


  
\(xfree\)|\(xserver\)
  

  
  

  

  


  


Verwende ich statt "expression" "regex", dann bekomme ich zwar keinen
Fehler, aber die regex \(*XServer*\) (ja, ich suche erst mal nur nach
einem Wort) wirkt auf ein Topic wie :

Re: XServer - umstieg von CRT auf TFT via dabconf

leider nicht. Die Nachricht bleibt wo sie ist.

Hüllfööh!

Gruß
Lars


-- 
LarsWeissflog
[EMAIL PROTECTED] dot DE



--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-20 Diskussionsfäden Hans-Georg Bork
Moin,

On Mon, 2003-10-20 at 20:55, Lars Weissflog wrote:
> Hi zusammen, 
> 
> nachdem ich den halben Tag google gequält habe, frage ich erst mal euch
> auf deutsch, bevor ich auf die ximian-listen aufspringe. 
> 
> Ich würde gern meine Filter in Evolution (1.4) aufbohren. Von hause aus
> kennt Evo nur "if all criteria are met" oder "if any criteria are met". 

hast Du schon mal mit vFoldern "gespielt"? Die lassen sich etwas besser
konfigurieren ...

Gruss
-- hgb



-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-20 Diskussionsfäden Reinhold Plew
Hallo Lars,

habe zwar noch nicht viel mit xml gemacht, aber...

Lars Weissflog schrieb:

Hi zusammen, 

nachdem ich den halben Tag google gequält habe, frage ich erst mal euch
auf deutsch, bevor ich auf die ximian-listen aufspringe. 

Ich würde gern meine Filter in Evolution (1.4) aufbohren. Von hause aus
kennt Evo nur "if all criteria are met" oder "if any criteria are met". 
[...]

If ALL CRITERIA ARE MET:
CRITERIA:
   1) LIST IS: debian-user-german
   2) SUBJECT CONTAINS: xserver xfree xf86config xconfig x-server
ACTIONS:
   1) MOVE MESSAGE TO FOLDER Inbox/linux-lists/deb-u-ger/XFree
   2) STOP processing this message
[...]


  deb-u-ger: +xfree
  

  
  
[EMAIL PROTECTED]
  


  
\(xfree\)|\(xserver\)
  

  
  

  

  


  

[...]

was passiert, wenn Du eine Nachricht bekommst, welche
1. nicht von debian-user-german kommt und
2. im Subject xserver xfree xf86config xconfig x-server enthält
?
Gruss
Reinhold
Hüllfööh!

Gruß
Lars



--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)


Regexp filter in Evolution (vielleicht etwas OT?)

2003-10-20 Diskussionsfäden Lars Weissflog
Hi zusammen, 

nachdem ich den halben Tag google gequält habe, frage ich erst mal euch
auf deutsch, bevor ich auf die ximian-listen aufspringe. 

Ich würde gern meine Filter in Evolution (1.4) aufbohren. Von hause aus
kennt Evo nur "if all criteria are met" oder "if any criteria are met". 

Nun bauen sich meine Filter - da ich einige Listen abonniert habe - so
auf, das ich zunächst nach der Liste filtere und dann nach bestimmten
Schlüsselwörtern im subject. Für unsere Liste schaue ich also erstmal ob
die mail von debian-user-german kommt, und dann z.B. ob es sich um
XServer ODER xfree ODER xf86config ODER xconfig handelt (nur so als
Beispiel). Nun war mir so, als ob Evo die Wörter im Feld "subject
contains" case-insensitive behandelt und durch ODER verknüpft. Damit
müsste ein Filter in der Art (verbalisiert, unten steht der xml-code):

If ALL CRITERIA ARE MET:
CRITERIA:
   1) LIST IS: debian-user-german
   2) SUBJECT CONTAINS: xserver xfree xf86config xconfig x-server
ACTIONS:
   1) MOVE MESSAGE TO FOLDER Inbox/linux-lists/deb-u-ger/XFree
   2) STOP processing this message

jede Nachricht unserer Liste in den angegebenen Ordner schubsen, wenn im
topic eines der gegebenen Wörter vorkommt. Das funktioniert aber nicht.
Wenn ich "If any criteria are met" mit den oben angeführten Bedingungen
verwende, landen _alle_ debian-user-german Mails in XFree. Lasse ich die
debian-user-german Bedingung weg und verwende "if any criteria are met",
dann versteht er die angegebenen Begriffe als durch ODER verbunden und
das ganze funktioniert. Leider landen dann aber unter Umständen auch
Nachrichten von anderen Listen in dem deb-u-ger/XFree Ordner, die da gar
nicht hingehören. Das ließe sich über die Reihenfolge der Filter regeln,
aber wenn mehrere Linux-Groups (wie bei mir) da sind, dann geht es immer
in einer oder der anderen Richtung schief.

Also dachte ich, ersetze ich die "subject contains" durch eine
"Expression"-Option. Laut Hilfe zu Evo verbirgt sich dahinter nämlich
die Möglichkeit, regexs (Plural von regex?) zu verwenden. Mehr steht
dazu leider nicht in der Hilfe, der dort vorhandene Link "regex"
schmeißt mich auf die erste Seite der Evo-Doku. 
Im Web habe ich hingegen - zumindest für ältere Evo-Versionen - gelesen,
dass dieses "Expressions" keine regex sondern was anderes sind. Dann
gibt es noch ein auswählbares Kriterium namens "regex" in dem
Filter-Dialog, das jedoch nirgends dokumentiert scheint. Dazu gibt es
dann ein Feld header oder body und die Möglichkeit eine regex
einzugeben.

Kann mir jemand sagen, wie ich in Evolution regex verwende und wie die
Syntax dafür lautet? Mit folgendem Eintrag erhalte ich 'nen Fehler bei
der Filter-Anwendung, ich denke mal, weil "expressions" eben keine
regexp sind oder die regexp-syntax in Evo eine andere ist als in grep,
egrep, sed etc.


  deb-u-ger: +xfree
  

  
  
[EMAIL PROTECTED]
  


  
\(xfree\)|\(xserver\)
  

  
  

  

  


  


Verwende ich statt "expression" "regex", dann bekomme ich zwar keinen
Fehler, aber die regex \(*XServer*\) (ja, ich suche erst mal nur nach
einem Wort) wirkt auf ein Topic wie :

Re: XServer - umstieg von CRT auf TFT via dabconf

leider nicht. Die Nachricht bleibt wo sie ist.

Hüllfööh!

Gruß
Lars


-- 
LarsWeissflog
[EMAIL PROTECTED] dot DE



--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: regexp

2003-06-06 Diskussionsfäden Roland Kruggel
Am Freitag Juni 6 2003 12:56 schrieb Christoph Maurer:
> * Am Fre, 06 Jun 2003 schrieb Roland Kruggel:
> > hallo,
> >
> > ich brauche man eure Hilfe.
> > ich suche für meinen Spamfilter einen/zwei regexp die ich
> > nicht zusammen bekomme.
>
> Für was denn? Procmail, Perl?

Filter in Postfix.

cu
-- 
Roland Kruggel  mailto: [EMAIL PROTECTED]
System: AMD 1200Mhz, Debian woody, 2.4.20, KDE 3.1


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: regexp

2003-06-06 Diskussionsfäden Roland Kruggel
Am Freitag Juni 6 2003 12:59 schrieb Michael Tuschik:
> Hi,
>
> On Fri, Jun 06, 2003 at 12:28:58PM +0200, Roland Kruggel wrote:
> > [...]
> > 1. Um einen email-namen mit mehr als 12 Buchstaben oder
> > Zahlen ohne Punkt oder Strich/Unterstrich zu filtern.
> > z.b. [EMAIL PROTECTED]
> >  ^^
> > [EMAIL PROTECTED] soll nicht gefilter werden.
>
> "[a-zA-Z]{12,[EMAIL PROTECTED]"

Danke Allen. Hat funktioniert.

cu

-- 
Roland Kruggel  mailto: [EMAIL PROTECTED]
System: AMD 1200Mhz, Debian woody, 2.4.20, KDE 3.1


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: regexp

2003-06-06 Diskussionsfäden Daniel K. Gebhart
On Fri, Jun 06, 2003 at 12:28:58PM +0200, Roland Kruggel <[EMAIL PROTECTED]> wrote:

Hej,

> 1. Um einen email-namen mit mehr als 12 Buchstaben oder Zahlen 
> ohne Punkt oder Strich/Unterstrich zu filtern.
> z.b. [EMAIL PROTECTED]

[EMAIL PROTECTED]:~$ echo "[EMAIL PROTECTED]"  | \ 
grep -E '^[a-zA-Z]{10,[EMAIL PROTECTED]'
[EMAIL PROTECTED]

> 2. Um im text worte ohne mit mehr als 15 Buchstaben und/oder 
> Zahlen zu filtern.

Modifiziere dazu einfach obige regex.

hth,
 Daniel

-- 
(___)   Daniel K. Gebhart «http://dkg.con-fuse.org/» | «dkg_at_con-fuse.org»
(  oo   Key fingerprint = 10A6 A760 2635 6184 981A  B19E 03AC D8F6 F412 9574
 \_ |
   \O   "Have you mooed today?"...


pgp0.pgp
Description: PGP signature


Re: regexp

2003-06-06 Diskussionsfäden Christoph Maurer
* Am Fre, 06 Jun 2003 schrieb Roland Kruggel:
> hallo,
> 
> ich brauche man eure Hilfe.
> ich suche für meinen Spamfilter einen/zwei regexp die ich nicht 
> zusammen bekomme.

Für was denn? Procmail, Perl?

> 
> 1. Um einen email-namen mit mehr als 12 Buchstaben oder Zahlen 
> ohne Punkt oder Strich/Unterstrich zu filtern.
> z.b. [EMAIL PROTECTED]
>  ^^
> [EMAIL PROTECTED] soll nicht gefilter werden.

Evtl. so in der Art
\ [^\.]*[a-zA-Z0-9]{13,}@

> 
> 2. Um im text worte ohne mit mehr als 15 Buchstaben und/oder 
> Zahlen zu filtern.
> z.B.
> jemandhateineLivecam-BotschaftinunseremSystemfürSiehinterlegt.
> BitteschauenSieinunserenChatundrufenSiediesedortab.
> Video-Botschaftenwerdengenerell48Stundengespeichert.
\ [a-zA-Z0-9äöüÄÖÜ]{15, }


In Perl könntest Du mit den entsprechenden Character Classes und
Word Boundaries arbeiten (siehe man perlre)

Gruß

Christoph 


-- 
Christoph Maurer - http://www.christophmaurer.de
mailto:[EMAIL PROTECTED] - Tux# 194235


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: regexp

2003-06-06 Diskussionsfäden Michael Tuschik
Hi,

On Fri, Jun 06, 2003 at 12:28:58PM +0200, Roland Kruggel wrote:
> [...]
> 1. Um einen email-namen mit mehr als 12 Buchstaben oder Zahlen 
> ohne Punkt oder Strich/Unterstrich zu filtern.
> z.b. [EMAIL PROTECTED]
>  ^^
> [EMAIL PROTECTED] soll nicht gefilter werden.

"[a-zA-Z]{12,[EMAIL PROTECTED]"

> 2. Um im text worte ohne mit mehr als 15 Buchstaben und/oder 
> Zahlen zu filtern.
> z.B.
> jemandhateineLivecam-BotschaftinunseremSystemfürSiehinterlegt.
> BitteschauenSieinunserenChatundrufenSiediesedortab.
> Video-Botschaftenwerdengenerell48Stundengespeichert.

"[a-zA-Z0-9]{15,}"

Das ist glaub ich extended regexp. Hängt von deinem SpamFilter ab.

Gruß
Micha


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



regexp

2003-06-06 Diskussionsfäden Roland Kruggel
hallo,

ich brauche man eure Hilfe.
ich suche für meinen Spamfilter einen/zwei regexp die ich nicht 
zusammen bekomme.

1. Um einen email-namen mit mehr als 12 Buchstaben oder Zahlen 
ohne Punkt oder Strich/Unterstrich zu filtern.
z.b. [EMAIL PROTECTED]
 ^^
[EMAIL PROTECTED] soll nicht gefilter werden.

2. Um im text worte ohne mit mehr als 15 Buchstaben und/oder 
Zahlen zu filtern.
z.B.
jemandhateineLivecam-BotschaftinunseremSystemfürSiehinterlegt.
BitteschauenSieinunserenChatundrufenSiediesedortab.
Video-Botschaftenwerdengenerell48Stundengespeichert.

Diese art von Spam kommt in letzter zeit immer mehr.

Danke im Vorraus.

cu

-- 
Roland Kruggel  mailto: [EMAIL PROTECTED]
System: AMD 1200Mhz, Debian woody, 2.4.20, KDE 3.1


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)