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