Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.os.unix.linux.misc > #114429 > unrolled thread
| Started by | Ralph Stahl <post@rstahl.de> |
|---|---|
| First post | 2021-01-29 15:18 +0100 |
| Last post | 2021-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
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 →
| From | Ralph Stahl <post@rstahl.de> |
|---|---|
| Date | 2021-01-29 15:18 +0100 |
| Subject | Shell: 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]
| From | Ulli Horlacher <framstag@rus.uni-stuttgart.de> |
|---|---|
| Date | 2021-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]
| From | Tim Landscheidt <tim@tim-landscheidt.de> |
|---|---|
| Date | 2021-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]
| From | Ralph Stahl <post@rstahl.de> |
|---|---|
| Date | 2021-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]
| From | Helmut Waitzmann <nn.throttle@xoxy.net> |
|---|---|
| Date | 2021-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]
| From | Ralph Stahl <post@rstahl.de> |
|---|---|
| Date | 2021-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]
| From | Claus Reibenstein <creibens@gmail.com> |
|---|---|
| Date | 2021-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]
| From | Ralph Stahl <post@rstahl.de> |
|---|---|
| Date | 2021-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]
| From | Claus Reibenstein <creibens@gmail.com> |
|---|---|
| Date | 2021-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]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2021-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]
| From | Ralph Stahl <post@rstahl.de> |
|---|---|
| Date | 2021-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]
| From | Helmut Waitzmann <nn.throttle@xoxy.net> |
|---|---|
| Date | 2021-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]
| From | Helmut Waitzmann <nn.throttle@xoxy.net> |
|---|---|
| Date | 2021-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]
| From | Sieghard Schicktanz <Sieghard.Schicktanz@SchS.de> |
|---|---|
| Date | 2021-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]
| From | Helmut Waitzmann <nn.throttle@xoxy.net> |
|---|---|
| Date | 2021-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]
| From | Claus Reibenstein <creibens@gmail.com> |
|---|---|
| Date | 2021-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]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2021-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]
| From | Eike Rathke <erack+nutznetz.p@posteo.de> |
|---|---|
| Date | 2021-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]
| From | Eike Rathke <erack+nutznetz.p@posteo.de> |
|---|---|
| Date | 2021-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]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2021-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