Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.os.unix.linux.misc > #114429 > unrolled thread

Shell: regex in grep

Started byRalph Stahl <post@rstahl.de>
First post2021-01-29 15:18 +0100
Last post2021-01-30 13:58 +0100
Articles 20 on this page of 34 — 10 participants

Back to article view | Back to de.comp.os.unix.linux.misc


Contents

  Shell: regex in grep Ralph Stahl <post@rstahl.de> - 2021-01-29 15:18 +0100
    Re: Shell: regex in grep Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2021-01-29 14:48 +0000
    Re: Shell: regex in grep Tim Landscheidt <tim@tim-landscheidt.de> - 2021-01-29 15:28 +0000
      Re: Shell: regex in grep Ralph Stahl <post@rstahl.de> - 2021-01-30 14:07 +0100
        Re: Shell: regex in grep Helmut Waitzmann <nn.throttle@xoxy.net> - 2021-01-30 18:48 +0100
          Re: Shell: regex in grep Ralph Stahl <post@rstahl.de> - 2021-02-01 11:43 +0100
    Re: Shell: regex in grep Claus Reibenstein <creibens@gmail.com> - 2021-01-29 22:56 +0100
      Re: Shell: regex in grep Ralph Stahl <post@rstahl.de> - 2021-01-30 14:24 +0100
        Re: Shell: regex in grep Claus Reibenstein <creibens@gmail.com> - 2021-01-30 16:45 +0100
          Re: Shell: regex in grep Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2021-01-30 15:50 +0000
            Re: Shell: regex in grep Ralph Stahl <post@rstahl.de> - 2021-02-01 11:58 +0100
              Re: Shell: regex in grep Helmut Waitzmann <nn.throttle@xoxy.net> - 2021-02-01 20:43 +0100
          Re: Shell: regex in grep Helmut Waitzmann <nn.throttle@xoxy.net> - 2021-01-30 18:54 +0100
            Re: Shell: regex in grep Sieghard Schicktanz <Sieghard.Schicktanz@SchS.de> - 2021-01-30 20:52 +0100
              Re: Shell: regex in grep Helmut Waitzmann <nn.throttle@xoxy.net> - 2021-01-30 23:02 +0100
              Re: Shell: regex in grep Claus Reibenstein <creibens@gmail.com> - 2021-01-31 14:06 +0100
                Re: Shell: regex in grep Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2021-01-31 14:24 +0000
                  Re: Shell: regex in grep Eike Rathke <erack+nutznetz.p@posteo.de> - 2021-01-31 15:01 +0000
                    Re: Shell: regex in grep Eike Rathke <erack+nutznetz.p@posteo.de> - 2021-01-31 15:14 +0000
                    Re: Shell: regex in grep Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2021-01-31 16:21 +0000
                      Re: Shell: regex in grep Eike Rathke <erack+nutznetz.p@posteo.de> - 2021-02-01 11:41 +0000
                        Re: Shell: regex in grep Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2021-02-01 13:18 +0000
                          Re: Shell: regex in grep Michael Uplawski <michael.uplawski@uplawski.eu> - 2021-02-02 07:16 +0100
                            Re: Shell: regex in grep Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2021-02-02 08:00 +0000
                            Re: Shell: regex in grep Andreas Karrer <ak-0a@gmx.ch> - 2021-02-02 18:58 +0000
                              Re: Shell: regex in grep Michael Uplawski <michael.uplawski@uplawski.eu> - 2021-02-04 09:10 +0100
                          Re: Shell: regex in grep Ralph Stahl <post@rstahl.de> - 2021-02-04 13:44 +0100
                Re: Shell: regex in grep Eike Rathke <erack+nutznetz.p@posteo.de> - 2021-01-31 15:00 +0000
                Re: Shell: regex in grep Helmut Waitzmann <nn.throttle@xoxy.net> - 2021-01-31 23:03 +0100
                  Re: Shell: regex in grep Sieghard Schicktanz <Sieghard.Schicktanz@SchS.de> - 2021-02-01 20:15 +0100
                    Re: Shell: regex in grep Helmut Waitzmann <nn.throttle@xoxy.net> - 2021-02-02 01:46 +0100
                      Re: Shell: regex in grep Sieghard Schicktanz <Sieghard.Schicktanz@SchS.de> - 2021-02-02 20:50 +0100
    Re: Shell: regex in grep Andreas Karrer <ak-0a@gmx.ch> - 2021-01-29 23:10 +0000
      Re: Shell: regex in grep Ralph Stahl <post@rstahl.de> - 2021-01-30 13:58 +0100

Page 1 of 2  [1] 2  Next page →


#114429 — Shell: regex in grep

FromRalph Stahl <post@rstahl.de>
Date2021-01-29 15:18 +0100
SubjectShell: regex in grep
Message-ID<i7ijpeF48bpU1@mid.individual.net>
Moin!

Gegeben seien 2 Dateien, deren viiiele Zeilen mit einer 7-stelligen Zahl 
anfangen. Die möchte ich vergleichen und die Differenz in eine dritte 
Datei schreiben. Wegen -u haben die entscheidenden Differenzzeilen ein + 
oder - am Anfang. Alle anderen Zeilen sollen ignoriert werden.

Folgendes geht in der bash (Linux):

diff -u file1 file2 | grep ^[+-][0-9] > file3

Folgendes geht nicht, wohl weil für die Shell relevante Zeichen 
enthalten sind - das Ergebnis ist leer.

diff -u file1 file2 | grep ^[+-]\d{7} > file3

Normalerweise mache ich sowas in PHP, hier will ich aber system() in PHP 
nutzen, also eine Shell auf machen. Welche Shell von PHP genutzt wird, 
kann ich nicht beeinflussen, es muss also universell gehen.

Ich komme nicht dahinter, wie ich das machen kann. mit "" oder '' hab 
ich es nicht geschafft. Könnt ihr mir bitte helfen? Shell ist nicht so 
unbedingt meine Stärke.

VG Ralph

[toc] | [next] | [standalone]


#114430

FromUlli Horlacher <framstag@rus.uni-stuttgart.de>
Date2021-01-29 14:48 +0000
Message-ID<rv178l$u63$1@news2.informatik.uni-stuttgart.de>
In reply to#114429
Ralph Stahl <post@rstahl.de> wrote:

> Folgendes geht nicht, wohl weil für die Shell relevante Zeichen 
> enthalten sind - das Ergebnis ist leer.
> 
> diff -u file1 file2 | grep ^[+-]\d{7} > file3

Wieso glaubst du, dass ^[+-]\d{7} ein gueltiger grep regexp ist?
Ist es naemlich nicht.


> Ich komme nicht dahinter, wie ich das machen kann. mit "" oder '' hab 
> ich es nicht geschafft. Könnt ihr mir bitte helfen? Shell ist nicht so 
> unbedingt meine Stärke.

Das hat mit der shell ueberhaupt nichts zu tun. Du verwedest die falsche
grep regexp.
Du brauchst das zur regexp passende Programm, oder das zum Programm
passende regexp. Also... was willste? :-) 

Ansonsten: Argumente, die die Shell nicht interpretieren soll, IMMER in ''
setzen! 

Siehe Unterschied:

echo ^[+-]\d{7}
echo '^[+-]\d{7}'


-- 
Ullrich Horlacher              Server und Virtualisierung
Rechenzentrum TIK         
Universitaet Stuttgart         E-Mail: horlacher@tik.uni-stuttgart.de
Allmandring 30a                Tel:    ++49-711-68565868
70569 Stuttgart (Germany)      WWW:    http://www.tik.uni-stuttgart.de/

[toc] | [prev] | [next] | [standalone]


#114432

FromTim Landscheidt <tim@tim-landscheidt.de>
Date2021-01-29 15:28 +0000
Message-ID<87h7mzahkc.fsf@passepartout.tim-landscheidt.de>
In reply to#114429
Ralph Stahl <post@rstahl.de> wrote:

> Gegeben seien 2 Dateien, deren viiiele Zeilen mit einer
> 7-stelligen Zahl anfangen. Die möchte ich vergleichen und
> die Differenz in eine dritte Datei schreiben. Wegen -u haben
> die entscheidenden Differenzzeilen ein + oder - am
> Anfang. Alle anderen Zeilen sollen ignoriert werden.

> Folgendes geht in der bash (Linux):

> diff -u file1 file2 | grep ^[+-][0-9] > file3

> Folgendes geht nicht, wohl weil für die Shell relevante
> Zeichen enthalten sind - das Ergebnis ist leer.

> diff -u file1 file2 | grep ^[+-]\d{7} > file3

> Normalerweise mache ich sowas in PHP, hier will ich aber
> system() in PHP nutzen, also eine Shell auf machen. Welche
> Shell von PHP genutzt wird, kann ich nicht beeinflussen, es
> muss also universell gehen.

> Ich komme nicht dahinter, wie ich das machen kann. mit ""
> oder '' hab ich es nicht geschafft. Könnt ihr mir bitte
> helfen? Shell ist nicht so unbedingt meine Stärke.

Es sind da zwei Aspekte zu beachten: Quoting/Escaping und
die unterschiedlichen Syntaxen reguläre Ausdrücke.

Wenn beispielsweise bei grep ein Backslash als Argument an-
kommen soll, muss der Backslash in der Shell gequotet/es-
capet werden. Damit der Backslash und sein Quoting/Escaping
in der Shell ankommt, müssen diese wiederum in PHP gequotet/
escapet werden.

Das heißt, wenn Du in PHP "system('grep ^[+-]\d{7}')"
schreibst, kommt bei grep als Argument "^[+-]d{7}" an, was
nicht das ist, was Du willst. Wahrscheinlich ist (ungetes-
tet) "system('diff -u file1 file2 | grep \'^[+-]\d{7}\' >
file3')" das Gesuchte.

Daneben gibt es aber noch unterschiedliche Formen regulärer
Ausdrücke, häufig sind „basic“, „extended“ oder „Perl Compa-
tible Regular Expressions“ (PCRE). "\d" als Kurzform für
"[0-9]" gibt es nur in PCRE, ebenso ist „{7}“ als „sieben
Mal das Vorherige“ nur in extended und PCRE definiert, in
basic wird es dagegen wörtlich interpretiert und muss statt-
dessen als „\{7\}“ geschrieben werden. Man kann (die populä-
ren Implementationen von) grep mit der Option
„--perl-regexp“ dazu bringen, „\d{7}“ so zu interpretieren,
wie Du es meinst.

Tim

[toc] | [prev] | [next] | [standalone]


#114465

FromRalph Stahl <post@rstahl.de>
Date2021-01-30 14:07 +0100
Message-ID<i7l3vmFj30mU1@mid.individual.net>
In reply to#114432
Am 29.01.21 um 16:28 schrieb Tim Landscheidt:
> Ralph Stahl <post@rstahl.de> wrote:
> 
>> Gegeben seien 2 Dateien, deren viiiele Zeilen mit einer
>> 7-stelligen Zahl anfangen. Die möchte ich vergleichen und
>> die Differenz in eine dritte Datei schreiben. Wegen -u haben
>> die entscheidenden Differenzzeilen ein + oder - am
>> Anfang. Alle anderen Zeilen sollen ignoriert werden.
> 
>> Folgendes geht in der bash (Linux):
> 
>> diff -u file1 file2 | grep ^[+-][0-9] > file3
> 
>> Folgendes geht nicht, wohl weil für die Shell relevante
>> Zeichen enthalten sind - das Ergebnis ist leer.
> 
>> diff -u file1 file2 | grep ^[+-]\d{7} > file3
> 
>> Normalerweise mache ich sowas in PHP, hier will ich aber
>> system() in PHP nutzen, also eine Shell auf machen. Welche
>> Shell von PHP genutzt wird, kann ich nicht beeinflussen, es
>> muss also universell gehen.
> 
>> Ich komme nicht dahinter, wie ich das machen kann. mit ""
>> oder '' hab ich es nicht geschafft. Könnt ihr mir bitte
>> helfen? Shell ist nicht so unbedingt meine Stärke.
> 
> Es sind da zwei Aspekte zu beachten: Quoting/Escaping und
> die unterschiedlichen Syntaxen reguläre Ausdrücke.
> 
> Wenn beispielsweise bei grep ein Backslash als Argument an-
> kommen soll, muss der Backslash in der Shell gequotet/es-
> capet werden. Damit der Backslash und sein Quoting/Escaping
> in der Shell ankommt, müssen diese wiederum in PHP gequotet/
> escapet werden.
> 
> Das heißt, wenn Du in PHP "system('grep ^[+-]\d{7}')"
> schreibst, kommt bei grep als Argument "^[+-]d{7}" an, was
> nicht das ist, was Du willst. Wahrscheinlich ist (ungetes-
> tet) "system('diff -u file1 file2 | grep \'^[+-]\d{7}\' >
> file3')" das Gesuchte.

Danke! Das trifft sich mit dem, was Andreas schreibt,

> Daneben gibt es aber noch unterschiedliche Formen regulärer
> Ausdrücke, häufig sind „basic“, „extended“ oder „Perl Compa-
> tible Regular Expressions“ (PCRE). "\d" als Kurzform für
> "[0-9]" gibt es nur in PCRE, ebenso ist „{7}“ als „sieben
> Mal das Vorherige“ nur in extended und PCRE definiert, in
> basic wird es dagegen wörtlich interpretiert und muss statt-
> dessen als „\{7\}“ geschrieben werden. Man kann (die populä-
> ren Implementationen von) grep mit der Option
> „--perl-regexp“ dazu bringen, „\d{7}“ so zu interpretieren,
> wie Du es meinst.
> 
> Tim
> 

Genau, oder eben mit -P. Danke auch dafür!

Mal am Rande für mein Hintergrundwissen: Kann man als basic-Regex die 
verschiedenen Formen von {m,n} irgendwie anders schreiben?

Ralph

[toc] | [prev] | [next] | [standalone]


#114487

FromHelmut Waitzmann <nn.throttle@xoxy.net>
Date2021-01-30 18:48 +0100
Message-ID<83v9be71us.fsf@helmutwaitzmann.news.arcor.de>
In reply to#114465
Ralph Stahl <post@rstahl.de>:

>Mal am Rande für mein Hintergrundwissen: Kann man als basic-Regex 
>die verschiedenen Formen von {m,n} irgendwie anders schreiben?

Ja: \{m,n\} 


Schau Dir 


<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03>

an. 

[toc] | [prev] | [next] | [standalone]


#114544

FromRalph Stahl <post@rstahl.de>
Date2021-02-01 11:43 +0100
Message-ID<i7q49qFic4lU1@mid.individual.net>
In reply to#114487
Am 30.01.21 um 18:48 schrieb Helmut Waitzmann:
> Ralph Stahl <post@rstahl.de>:
> 
>> Mal am Rande für mein Hintergrundwissen: Kann man als basic-Regex
>> die verschiedenen Formen von {m,n} irgendwie anders schreiben?
> 
> Ja: \{m,n\}
> 
> 
> Schau Dir
> 
> 
> <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03>
> 
> an.
> 

Ach so, ja klar. Danke!

[toc] | [prev] | [next] | [standalone]


#114437

FromClaus Reibenstein <creibens@gmail.com>
Date2021-01-29 22:56 +0100
Message-ID<i7jekkF9bbiU2@mid.individual.net>
In reply to#114429
Ralph Stahl schrieb am 29.01.2021 um 15:18:

> Folgendes geht in der bash (Linux):
> 
> diff -u file1 file2 | grep ^[+-][0-9] > file3

Zufall :-)

> Folgendes geht nicht, wohl weil für die Shell relevante Zeichen 
> enthalten sind - das Ergebnis ist leer.
> 
> diff -u file1 file2 | grep ^[+-]\d{7} > file3

Mache aus [+-] mal [-+] und berichte, ob sich was ändert.

Gruß
Claus

[toc] | [prev] | [next] | [standalone]


#114467

FromRalph Stahl <post@rstahl.de>
Date2021-01-30 14:24 +0100
Message-ID<i7l50tFja5hU1@mid.individual.net>
In reply to#114437
Am 29.01.21 um 22:56 schrieb Claus Reibenstein:
> Ralph Stahl schrieb am 29.01.2021 um 15:18:
> 
>> Folgendes geht in der bash (Linux):
>>
>> diff -u file1 file2 | grep ^[+-][0-9] > file3
> 
> Zufall :-)

Weil? Wie ich unten lese, ist das klassisches Basic Regex, was hier 
sogar ohne '' funktioniert.

>> Folgendes geht nicht, wohl weil für die Shell relevante Zeichen
>> enthalten sind - das Ergebnis ist leer.
>>
>> diff -u file1 file2 | grep ^[+-]\d{7} > file3
> 
> Mache aus [+-] mal [-+] und berichte, ob sich was ändert.

Nichts. Warum auch, ist ne normale Zeichenklasse, wo auch [+#=0x@-] 
drinstehen könnte, Reihenfolge beliebig. Das - heißt ja nicht "bis" wie 
in 0-9 oder a-f.

> Gruß
> Claus
> 

Ralph

[toc] | [prev] | [next] | [standalone]


#114482

FromClaus Reibenstein <creibens@gmail.com>
Date2021-01-30 16:45 +0100
Message-ID<i7ld8tFkovpU1@mid.individual.net>
In reply to#114467
Ralph Stahl schrieb am 30.01.2021 um 14:24:

> Am 29.01.21 um 22:56 schrieb Claus Reibenstein:
>
>> Mache aus [+-] mal [-+] und berichte, ob sich was ändert.
>
> Nichts. Warum auch, ist ne normale Zeichenklasse, wo auch [+#=0x@-] 
> drinstehen könnte, Reihenfolge beliebig. Das - heißt ja nicht "bis" wie 
> in 0-9 oder a-f.

So, wie ich Regex gelernt habe und auch seit Jahren benutze, steht ein -
innerhalb [] generell für "bis", außer es taucht als erstes Zeichen
unmittelbar nach [ auf. Deshalb mein Vorschlag.

Gruß
Claus

[toc] | [prev] | [next] | [standalone]


#114483

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2021-01-30 15:50 +0000
Message-ID<1t60158016i7c47n3e8%sfroehli@Froehlich.Priv.at>
In reply to#114482
On Sat, 30 Jan 2021 16:45:33 Claus Reibenstein wrote:
> Ralph Stahl schrieb am 30.01.2021 um 14:24:
> > Am 29.01.21 um 22:56 schrieb Claus Reibenstein:
> >> Mache aus [+-] mal [-+] und berichte, ob sich was ändert.
> > Nichts. Warum auch, ist ne normale Zeichenklasse, wo auch [+#=0x@-] 
> > drinstehen könnte, Reihenfolge beliebig. Das - heißt ja nicht "bis" wie 
> > in 0-9 oder a-f.
 
> So, wie ich Regex gelernt habe und auch seit Jahren benutze, steht
> ein - innerhalb [] generell für "bis", außer es taucht als erstes
> Zeichen unmittelbar nach [ auf. Deshalb mein Vorschlag.

pcrepattern(3) meint dazu:

| If a minus character is required in a class, it must be escaped with
| a backslash or appear in a position where it cannot be interpreted
| as indicating a range, typically as the first or last character in
| the class, or immediately after a range.

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - Glück auf den Wolken des Glücks!
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#114545

FromRalph Stahl <post@rstahl.de>
Date2021-02-01 11:58 +0100
Message-ID<i7q55qFij2sU1@mid.individual.net>
In reply to#114483
Am 30.01.21 um 16:50 schrieb Stefan Froehlich:
> On Sat, 30 Jan 2021 16:45:33 Claus Reibenstein wrote:
>> Ralph Stahl schrieb am 30.01.2021 um 14:24:
>>> Am 29.01.21 um 22:56 schrieb Claus Reibenstein:
>>>> Mache aus [+-] mal [-+] und berichte, ob sich was ändert.
>>> Nichts. Warum auch, ist ne normale Zeichenklasse, wo auch [+#=0x@-]
>>> drinstehen könnte, Reihenfolge beliebig. Das - heißt ja nicht "bis" wie
>>> in 0-9 oder a-f.
>   
>> So, wie ich Regex gelernt habe und auch seit Jahren benutze, steht
>> ein - innerhalb [] generell für "bis", außer es taucht als erstes
>> Zeichen unmittelbar nach [ auf. Deshalb mein Vorschlag.
> 
> pcrepattern(3) meint dazu:
> 
> | If a minus character is required in a class, it must be escaped with
> | a backslash or appear in a position where it cannot be interpreted
> | as indicating a range, typically as the first or last character in
> | the class, or immediately after a range.
> 
> Servus,
>     Stefan
> 

Danach ist es also egal, ob [-+] oder [+-]? Es steht allein vorn oder 
hinten und kann nicht [nichts bis +] oder [+ bis nichts] bedeuten. Auch 
nicht, wenn ich "nichts" gegen "alles" ersetze ähnlich z.B. {,5} ohne 
erstes/zweites Argument.
Das wird jetzt kein Deutsch mehr ;-) ...

Ralph

[toc] | [prev] | [next] | [standalone]


#114555

FromHelmut Waitzmann <nn.throttle@xoxy.net>
Date2021-02-01 20:43 +0100
Message-ID<83k0rr4lrv.fsf@helmutwaitzmann.news.arcor.de>
In reply to#114545
Ralph Stahl <post@rstahl.de>:
>Am 30.01.21 um 16:50 schrieb Stefan Froehlich:

>> pcrepattern(3) meint dazu: 
>>
>>
>> | If a minus character is required in a class, it must be escaped
>> | with a backslash or appear in a position where it cannot be
>> | interpreted as indicating a range, typically as the first or
>> | last character in the class, or immediately after a range.

>Danach ist es also egal, ob [-+] oder [+-]? 
>

Ja.  Das ist bei PCRE (siehe oben) wie auch bei POSIX basic und 
extended RE der Fall. 

>Es steht allein vorn oder hinten und kann nicht [nichts bis +] oder 
>[+ bis nichts] bedeuten.

Genau.

[toc] | [prev] | [next] | [standalone]


#114488

FromHelmut Waitzmann <nn.throttle@xoxy.net>
Date2021-01-30 18:54 +0100
Message-ID<83sg6i71ky.fsf@helmutwaitzmann.news.arcor.de>
In reply to#114482
Claus Reibenstein <creibens@gmail.com>:

>So, wie ich Regex gelernt habe und auch seit Jahren benutze, steht 
>ein - innerhalb [] generell für "bis", außer es taucht als erstes 
>Zeichen unmittelbar nach [ auf. Deshalb mein Vorschlag.

Diese Regel wäre untauglich.  Gegenbeispiel:  Wie müsste ein 
regulärer Ausdruck gemäß dieser Regel aussehen, der auf ein 
Minuszeichen oder auf eine schließende eckige Klammer passt und auf 
sonst nichts? 

[toc] | [prev] | [next] | [standalone]


#114496

FromSieghard Schicktanz <Sieghard.Schicktanz@SchS.de>
Date2021-01-30 20:52 +0100
Message-ID<20210130205244.37ca343e@Achmuehle.WOR>
In reply to#114488
Hallo Helmut,

Du schriebst am Sat, 30 Jan 2021 18:54:05 +0100:

> Claus Reibenstein <creibens@gmail.com>:
> 
> >So, wie ich Regex gelernt habe und auch seit Jahren benutze, steht 
> >ein - innerhalb [] generell für "bis", außer es taucht als erstes 
> >Zeichen unmittelbar nach [ auf. Deshalb mein Vorschlag.  
> 
> Diese Regel wäre untauglich.  Gegenbeispiel:  Wie müsste ein 
> regulärer Ausdruck gemäß dieser Regel aussehen, der auf ein 
> Minuszeichen oder auf eine schließende eckige Klammer passt und auf 
> sonst nichts? 

Interessanterweise '[]-]'. Funktioniert bei grep _nur_ so.

-- 
-- 
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------

[toc] | [prev] | [next] | [standalone]


#114498

FromHelmut Waitzmann <nn.throttle@xoxy.net>
Date2021-01-30 23:02 +0100
Message-ID<83bld66q3g.fsf@helmutwaitzmann.news.arcor.de>
In reply to#114496
Sieghard Schicktanz <Sieghard.Schicktanz@SchS.de>:
>Hallo Helmut, 
>Du schriebst am Sat, 30 Jan 2021 18:54:05 +0100:
>> Claus Reibenstein <creibens@gmail.com>:
>>
>>>So, wie ich Regex gelernt habe und auch seit Jahren benutze, 
>>>steht ein - innerhalb [] generell für "bis", außer es taucht als 
>>>erstes Zeichen unmittelbar nach [ auf. Deshalb mein Vorschlag.
>>
>> Diese Regel wäre untauglich.  Gegenbeispiel:  Wie müsste ein 
>> regulärer Ausdruck gemäß dieser Regel aussehen, der auf ein 
>> Minuszeichen oder auf eine schließende eckige Klammer passt und 
>> auf sonst nichts? 
>
>Interessanterweise '[]-]'. Funktioniert bei grep _nur_ so. 
>

Genau:  Die schließende eckige Klammer kriegt man nur in die 
Zeichenmenge rein, wenn sie, abgesehen vom «^» zur 
Komplementmengenbildung, als erstes Zeichen aufgeführt ist.  Das hat 
zwangsläufig zur Folge, dass kein weiteres Zeichen («^» zur 
Komplementbildung ausgenommen) darauf angewiesen sein kann, an 
erster Stelle stehen zu müssen, also auch nicht das Minuszeichen.  
Und so ist es auch:  Das Minuszeichen darf auch an letzter Stelle 
stehen. 

[toc] | [prev] | [next] | [standalone]


#114514

FromClaus Reibenstein <creibens@gmail.com>
Date2021-01-31 14:06 +0100
Message-ID<i7noa4F4300U3@mid.individual.net>
In reply to#114496
Sieghard Schicktanz schrieb am 30.01.2021 um 20:52:

> Hallo Helmut,
>
> Du schriebst am Sat, 30 Jan 2021 18:54:05 +0100:

Mach da mal _eine_ Zeile draus.

>> Claus Reibenstein <creibens@gmail.com>:
>>
>>> So, wie ich Regex gelernt habe und auch seit Jahren benutze, steht 
>>> ein - innerhalb [] generell für "bis", außer es taucht als erstes 
>>> Zeichen unmittelbar nach [ auf. Deshalb mein Vorschlag.  
>>
>> Diese Regel wäre untauglich.  Gegenbeispiel:  Wie müsste ein 
>> regulärer Ausdruck gemäß dieser Regel aussehen, der auf ein 
>> Minuszeichen oder auf eine schließende eckige Klammer passt und auf 
>> sonst nichts? 
>
> Interessanterweise '[]-]'. Funktioniert bei grep _nur_ so.

'[-\]]' geht nicht?

Gruß
Claus

[toc] | [prev] | [next] | [standalone]


#114523

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2021-01-31 14:24 +0000
Message-ID<1t6016bd49ie20n3e8%sfroehli@Froehlich.Priv.at>
In reply to#114514
On Sun, 31 Jan 2021 14:06:11 Claus Reibenstein wrote:
> Sieghard Schicktanz schrieb am 30.01.2021 um 20:52:
> >>> So, wie ich Regex gelernt habe und auch seit Jahren benutze,
> >>> steht ein - innerhalb [] generell für "bis", außer es taucht
> >>> als erstes Zeichen unmittelbar nach [ auf. Deshalb mein
> >>> Vorschlag.

> >> Diese Regel wäre untauglich.  Gegenbeispiel:  Wie müsste ein
> >> regulärer Ausdruck gemäß dieser Regel aussehen, der auf ein
> >> Minuszeichen oder auf eine schließende eckige Klammer passt und
> >> auf sonst nichts? 

> > Interessanterweise '[]-]'. Funktioniert bei grep _nur_ so.

> '[-\]]' geht nicht?

Doch (wobei ich mir immer schwer tue zu entscheiden, ob mich das
Escape-Zeichen im zweiten Ausdruck mehr stört, oder die
nicht-matchende Klammer im ersten).

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan: das zarte Sehnen!
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#114526

FromEike Rathke <erack+nutznetz.p@posteo.de>
Date2021-01-31 15:01 +0000
Message-ID<N3e8I6016c60fT2604@kulungile.erack.de>
In reply to#114523
* Stefan Froehlich, 2021-01-31 14:24 UTC:
> On Sun, 31 Jan 2021 14:06:11 Claus Reibenstein wrote:
>> '[-\]]' geht nicht?

> Doch

Bei welchem grep?

  Eike

-- 
OpenPGP/GnuPG encrypted mail preferred in all private communication.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918  630B 6A6C D5B7 6563 2D3A
Use LibreOffice! https://www.libreoffice.org/

[toc] | [prev] | [next] | [standalone]


#114527

FromEike Rathke <erack+nutznetz.p@posteo.de>
Date2021-01-31 15:14 +0000
Message-ID<N3e8I6016c903T285c@kulungile.erack.de>
In reply to#114526
* Eike Rathke, 2021-01-31 15:01 UTC:
> * Stefan Froehlich, 2021-01-31 14:24 UTC:
>> On Sun, 31 Jan 2021 14:06:11 Claus Reibenstein wrote:
>>> '[-\]]' geht nicht?
>
>> Doch
>
> Bei welchem grep?

Oder anders.. es funktioniert zwar, matcht dann aber ein Minus oder
Backslash gefolgt von einer schliessenden eckigen Klammer.

  Eike

-- 
OpenPGP/GnuPG encrypted mail preferred in all private communication.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918  630B 6A6C D5B7 6563 2D3A
Use LibreOffice! https://www.libreoffice.org/

[toc] | [prev] | [next] | [standalone]


#114530

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2021-01-31 16:21 +0000
Message-ID<ft6016d8e1ie20n3e8%sfroehli@Froehlich.Priv.at>
In reply to#114526
On Sun, 31 Jan 2021 16:01:32 Eike Rathke wrote:
> * Stefan Froehlich, 2021-01-31 14:24 UTC:
> > On Sun, 31 Jan 2021 14:06:11 Claus Reibenstein wrote:
> >> '[-\]]' geht nicht?
> 
> > Doch
> 
> Bei welchem grep?

-P (also PCRE)

Waren die nicht inzwischen die Grundlage des (Teil-)threads? Falls
nicht, dann natürlich nicht.

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Fescher geht's nimmer! Stefan, so hinreissend...
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | de.comp.os.unix.linux.misc


csiph-web