SuSE 9.0 bitte testet den grep!
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hallo zusammen, wie gestern bereits in SuSE-Programming geschrieben, habe ich ein ernsthaftes Problem mit dem grep. Das Problem gibt es lediglich auf einer von 5 Kisten. Die betroffene Kiste rennt dem mit kernel 2.4.21-166-default und ist mit einem P4 2,0 GHz bestueckt. Ich beschreibe es mal ausfuehrlich, dass auch Newbies damit was anfangen koennen. Konsole unter X oeffnen und folgende Zeile ausfuehren: seq 0 9 | grep [135] | xargs echo Das Ergebnis lautet: 1 3 5 Jetzt folgende Zeile in der Konsole ausfuehren: seq 0 9 | grep [1235] | xargs echo Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von: uname -a grep -V bash --version Besten Dank! MfG Th. Moritz - -- Windows ist für die, die nicht wissen wollen, warum es nicht funktioniert. Linux ist für die, die wissen wollen, warum es funktioniert! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQFADlbjPBTBVZNAOL4RAseHAKDVuvM5Vo5hIaEFgDn+6Ep/ySNkLQCg2uOV HaqTbXfxH5d6VllplVaRs74= =2uTT -----END PGP SIGNATURE-----
Am Mittwoch, 21. Januar 2004 11:39 schrieb Thomas Moritz:
Jetzt folgende Zeile in der Konsole ausfuehren:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von:
# seq 0 9 | grep [1235] | xargs echo 1 2 3 5 @Suse-9.0 -- Andreas
Andreas Winkelmann wrote:
Am Mittwoch, 21. Januar 2004 11:39 schrieb Thomas Moritz:
Jetzt folgende Zeile in der Konsole ausfuehren:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von:
# seq 0 9 | grep [1235] | xargs echo 1 2 3 5
@Suse-9.0
seq 0 9 | grep [1235] | xargs echo 1 2 3 5 uname -a Linux c2 2.4.21-166-default #1 Thu Dec 18 18:23:14 UTC 2003 i686 athlon i386 GNU/Linux grep -V grep (GNU grep) 2.5.1 bash --version GNU bash, version 2.05b.0(1)-release (i586-suse-linux) Greetinx, Benni
Thomas Moritz wrote:
Jetzt folgende Zeile in der Konsole ausfuehren:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von:
uname -a grep -V bash --version
ich antworte trozdem mal für die Statistik, bei mir funktionierts wie es soll! ------------ SUSE 9 mit YOU aktuell gehalten ------------ Linux galileo 2.4.21-166-default #1 Thu Dec 18 18:23:14 UTC 2003 i686 i686 i386 GNU/Linux ------------ grep (GNU grep) 2.5.1 Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc. [...] ------------ GNU bash, version 2.05b.0(1)-release (i586-suse-linux) Copyright (C) 2002 Free Software Foundation, Inc. ------------ Andreas
A.Loesch wrote: und noch ein Nachtrag :) Der andere Rechner ist ein P3 (Coppermine) evtl. liegts ja da irgendwie dran... ich hab jetzt meinen P4 mal gebootet, da ist das Kernelupdate noch nicht draufgwesen (der musste die letzte Zeit nur unter Windows schwitzen ;) ) also da klappts auch mit: Linux einstein 2.4.21-144-default #1 Fri Nov 14 00:01:36 UTC 2003 i686 i686 i386 GNU/Linux grep (GNU grep) 2.5.1 GNU bash, version 2.05b.0(1)-release (i586-suse-linux) nachdem der jetzt einmal läuft :) geht gerade das YOU-Update los (mal sehen, obs an dem Kernelupdate liegt... Andreas
On Wed, Jan 21, 2004 at 11:39:27AM +0100, Thomas Moritz wrote:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von:
Du hast eine Datei mit dem Namen '2' im aktuellen Verzeichnis. -- Have fun, Peter
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Mittwoch, 21. Januar 2004 12:47 schrieb Peter Wiersig: Hallo Peter, danke Dir vielmals! Aber wie kommt man auf sowas? Danach haette ich niemals gesucht.
On Wed, Jan 21, 2004 at 11:39:27AM +0100, Thomas Moritz wrote:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von:
Du hast eine Datei mit dem Namen '2' im aktuellen Verzeichnis.
Genau das war das Problem! Nochmals Danke. MfG Th. Moritz - -- ****************************************************************** Probleme mit Windows? > mailto:/dev/null > Da werden Sie geholfen! ****************************************************************** -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQFADmq0PBTBVZNAOL4RArngAJ4v8mARE17K+pfRDgCSb88G2bPMygCdF/UG ZQH6jHzqAHajGJ8xR6oa/04= =4lrp -----END PGP SIGNATURE-----
Moin,
* Peter Wiersig
On Wed, Jan 21, 2004 at 11:39:27AM +0100, Thomas Moritz wrote:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von:
Du hast eine Datei mit dem Namen '2' im aktuellen Verzeichnis.
Warum ist das wichtig? Thorsten -- I believe that there are more instances of the abridgment of the freedom of the people by gradual and silent encroachment than by violent and sudden usurpations. - James Madison
* Thorsten Haude
* Peter Wiersig
[2004-01-21 12:47]: On Wed, Jan 21, 2004 at 11:39:27AM +0100, Thomas Moritz wrote:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von:
Du hast eine Datei mit dem Namen '2' im aktuellen Verzeichnis.
Warum ist das wichtig?
Weil die Shell den Ausdruck [1235] dann durch 2 ersetzt. Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ Arbeit ist die einzige Entschuldigung für Erfolg. -- Helmar Nahr
Moin,
* Bernhard Walle
* Thorsten Haude
[2004-01-22 20:43]: * Peter Wiersig
[2004-01-21 12:47]: On Wed, Jan 21, 2004 at 11:39:27AM +0100, Thomas Moritz wrote:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf diese Mail antwortest mit den Ausgaben von:
Du hast eine Datei mit dem Namen '2' im aktuellen Verzeichnis.
Warum ist das wichtig?
Weil die Shell den Ausdruck [1235] dann durch 2 ersetzt.
Ah, verstehe. Das habe ich nicht gesehen, weil meine Shell das Original nicht durchgelassen hat: yooden@eumel % seq 0 9 | grep [1235] | xargs echo zsh: no matches found: [1235] Darum habe ich's gequoted und den Fehler nicht gesehen, nachdem ich die Datei angelegt hatte. Die Zsh kann's einfach besser. Thorsten -- Profanity is the inevitable linguistic crutch of the inarticulate motherfucker. - Bruce Sherrod
Am Mittwoch, 21. Januar 2004 11:39 schrieb Thomas Moritz:
bash --version Auch bei der 8.1 stimmt dan wohl was nicht :-( ----------------------schnipp---------------------------
axel@linux:~> seq 0 9 | grep [135] | xargs echo 1 axel@linux:~> seq 0 9 | grep [1235] | xargs echo 1 axel@linux:~> uname -a Linux linux 2.4.19-4GB #1 Mon Aug 4 23:39:55 UTC 2003 i686 unknown axel@linux:~> grep -V grep (GNU grep) 2.5.1 Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc. Dies ist freie Software; in den Quellen befinden sich die Lizenzbedingungen. Es gibt KEINERLEI Garantie; nicht einmal für die TAUGLICHKEIT oder VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. axel@linux:~> bash --version GNU bash, version 2.05b.0(1)-release (i586-suse-linux) Copyright (C) 2002 Free Software Foundation, Inc. axel@linux:~> l --------------------------------schnapp----------------------- Falls es interessiert ..... Gruß Axel - Köln
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Danke an alle, die geantwortet haben. Die Mail von Peter Wiersig brachte die Loesung des Problems. Danke Peter! MfG Th. Moritz - -- Windows ist für die, die nicht wissen wollen, warum es nicht funktioniert. Linux ist für die, die wissen wollen, warum es funktioniert! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQFADmzsPBTBVZNAOL4RAlA0AKDA53ERR+F1RUz64f2sRzUCoh9WcgCdGAS1 JiY4sz61Z61IAv+6mUJCDXg= =C2IP -----END PGP SIGNATURE-----
Hi, auch wenn es genügend Antworten gibt, sollte doch mal klargestellt werden, was das Problem eigentlich ist:
Konsole unter X oeffnen und folgende Zeile ausfuehren:
seq 0 9 | grep [135] | xargs echo
Das Ergebnis lautet: 1 3 5
Jetzt folgende Zeile in der Konsole ausfuehren:
seq 0 9 | grep [1235] | xargs echo
Das Ergebnis _sollte_ sein: 1 2 3 5 Wer aber als Ergebnis lediglich eine 2 erhaelt, hat wohl das gleiche Problem wie ich. IN DIESEM FALL wuerde ich mich freuen, wenn Du auf
So etwas wie [...] (oder auch * oder ?) wird bereits von der Shell interpretiert. Wenn grep das selber interpretieren soll, dann mußt Du das schon irgendwie quoten ('[1235]' oder "[1235]" oder \[1235\] oder '['123'5]' oder \[ 1"235]" oder was DIr gerade Spaß macht). Im Moment ist dieser Befehl nicht viel anderes als eine extrem komplizierte Form von: ls [1235] Daß das grep [135] funktioniert, liegt an etwas arg viel Automatismus in Deiner Shell (bash wahrscheinlich?), in der tcsh kommt korrekterweise als Ausgabe: =============================== mack@is38 ~ 103 > seq 0 9 | grep [135] | xargs echo grep: Kein Treffer. mack@is38 ~ 104 > =============================== denn [135] wird von der Shell interpretiert als Dateinamen, die diesem Muster entsprechen. Und wenn Du keine Dateien mit dem Namen 1 oder 3 oder 5 im aktuellen Verzeichnis liegen hast, dann sollte das von der Shell auch entsprechend weitergegeben werden, und nicht einfach als '[135]' weiterinterpretiert werden. Denke ich... (Wie unterscheidet man in der bash den Fall, ob man tatsächlich '[135]' haben will oder [135], wenn es keine Dateien mit dem Namen 1 oder 3 oder 5 im Verzeichnis gibt???) Viel Spaß, Thomas
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Mittwoch, 21. Januar 2004 14:11 schrieb Thomas Mack: Hallo Thomas,
So etwas wie [...] (oder auch * oder ?) wird bereits von der Shell interpretiert. Wenn grep das selber interpretieren soll, dann mußt Du das schon irgendwie quoten ('[1235]' oder "[1235]" oder \[1235\] oder '['123'5]' oder \[ 1"235]" oder was DIr gerade Spaß macht).
Sorry, genau hier lag das Problem, welches erst genau dann zum Problem wird, wenn eine Datei mit dem Namen eines Argumentes existiert. In der Tat funktioniert dann ein grep '[234]' auch, wenn es eine Datei namens 2 3 oder 4 im selben Verzeichnis gibt:-) Zum besseren Verstaendnis muss ich wohl mal etwas debuggen und den Weg des grep nachforschen den er gerade geht:-) (Wenn File exist, dann nehme ich File, ansonsten schau ich in die Pipe - gruebel) MfG Th. Moritz - -- Windows ist für die, die nicht wissen wollen, warum es nicht funktioniert. Linux ist für die, die wissen wollen, warum es funktioniert! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQFADooJPBTBVZNAOL4RAuwUAJ9q5cPpIC/P6ylEXbsGaWASPDOnsQCdF5iA 7gcTLEl99uZpIpSKEGHYe0o= =wYea -----END PGP SIGNATURE-----
* On Wed, 21 Jan 2004 at 15:17 +0100, Thomas Moritz wrote:
Sorry, genau hier lag das Problem, welches erst genau dann zum Problem wird, wenn eine Datei mit dem Namen eines Argumentes existiert. In der Tat funktioniert dann ein grep '[234]' auch, wenn es eine Datei namens 2 3 oder 4 im selben Verzeichnis gibt:-) Zum besseren Verstaendnis muss ich wohl mal etwas debuggen und den Weg des grep nachforschen den er gerade geht:-) (Wenn File exist, dann nehme ich File, ansonsten schau ich in die Pipe - gruebel)
Du wirst im Weg des grep nichts finden, das macht Deine bash. adalbert@pepe:~/tmp > l total 10 drwxrwxr-x 2 adalbert adalbert 35 Jan 21 16:51 ./ drwx-----x 75 adalbert adalbert 9480 Jan 21 16:51 ../ adalbert@pepe:~/tmp > echo [234] [234] adalbert@pepe:~/tmp > touch 2 adalbert@pepe:~/tmp > echo [234] 2 adalbert@pepe:~/tmp > touch 3 adalbert@pepe:~/tmp > echo [234] 2 3 man -P 'less +/^\ \+Pattern\ Matching' bash /apm -- GPG welcome, request public key: mailto:adalbert+key@lopez.at
*** Thomas Moritz (th.moritz@gmx.de) schrieb heute in suse-linux:
[...] seq 0 9 | grep [1235] | xargs echo
Dir ist schon klar, dass "[1235]" durch die shell interpretiert wird? Solche Sachen sollte man vernünftigerweise in einfachen Anführungszei- chen ("'") schreiben (einfacher Anfängerfehler...). Versuch bitte seq 0 9 | grep '[1235]' | xargs echo
[...]
MG Henning Hucke
--
"Hier wird Dir niemand sagen, was Du vielleicht hoeren moechtest, sondern
was er Dir sagen moechte." (Bettina Fink in
participants (11)
-
A.Loesch
-
Adalbert Michelic
-
Andreas Winkelmann
-
Axel Lindlau
-
Benjamin Zeller
-
Bernhard Walle
-
Henning Hucke
-
Peter Wiersig
-
Thomas Mack
-
Thomas Moritz
-
Thorsten Haude