Shell Wildcards Bug?

Diskutiere Shell Wildcards Bug? im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, ich wollte grade mit der Shell Dateien kopieren lassen, die nur mit einem Großbuchstaben beginnen. Also (jaja, mit ls kann man nicht...

  1. #1 angelsfall, 17.07.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Hallo,

    ich wollte grade mit der Shell Dateien kopieren lassen, die nur mit einem Großbuchstaben beginnen.
    Also (jaja, mit ls kann man nicht kopieren, ist schon klar :) ) :
    Code:
    satire)0)548)~} ls [A-Z]*.gif
    Empfang.gif  Gesamt.gif  LAN.gif  projektstrukturplan.gif  Senden.gif  usecase.gif
    
    Da dachte ich mir, da kann doch was nicht stimmen. Er ignoriert die Captials. Validiert:
    Code:
    satire)0)549)~} ls [a-z]*.gif
    Empfang.gif  Gesamt.gif  LAN.gif  projektstrukturplan.gif  Senden.gif  usecase.gif
    
    Allerdings tut er dies nicht, wenn man keinen Bereich angibt:
    Code:
    satire)0)551)~} ls [SEG]*.gif
    Empfang.gif  Gesamt.gif  Senden.gif
    
    Code:
    satire)0)552)~} ls [seg]*.gif
    ls: [seg]*.gif: Datei oder Verzeichnis nicht gefunden
    
    Bash Version:
    Code:
    satire)0)555)~} bash --version
    GNU bash, version 3.00.16(1)-release (i486-pc-linux-gnu)
    Copyright (C) 2004 Free Software Foundation, Inc.
    
    Anderes System, auf dem es ebenfalls nicht funkionert hat:
    Code:
    root@vm-host-01:~$ bash --version
    GNU bash, version 3.1.17(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.
    
    Ein System, auf dem all das korrekt funktioniert hat:
    Code:
    ~>bash --version
    GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
    Copyright (C) 2002 Free Software Foundation, Inc.
    
    Kann das jemand verifizieren oder bin ich einfach nur zu dumm, die Shell Wildcards zu benutzen? (Scheinbar ab Bash Version 3.0)
    (Laut diesem Howto sollte es aber funktionieren: http://www.tuxfiles.org/linuxhelp/wildcards.html )

    Danke!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hwj

    hwj Doppel-As

    Dabei seit:
    23.06.2006
    Beiträge:
    131
    Zustimmungen:
    0
    Ort:
    Bei Buxtehude
    Interessant:
    $ bash --version
    GNU bash, version 3.1.17(1)-release (i586-suse-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

    $ touch A B a b
    $ ls
    a A b B

    $ ls [A-Z]*
    A b B

    Etwas ratlos ???

    Heiko
     
  4. #3 angelsfall, 17.07.2007
    Zuletzt bearbeitet: 17.07.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Wirklich? Irgendwie fehlt da entweder das "a" oder das "b" ist zu viel ;) (Oder deins macht nochmal ganz andere Sachen)

    {edit}
    Hab deins rekonstruiert, bei mir kommt das gleiche. Das ist ja noch kurioser.

    {edit la deuxieme}
    Und weiter gehts:
    Code:
    satire)0)521)~/lala} ls
    a  A  b  B
    satire)0)522)~/lala} ls [!a-z]
    ls: [!a-z]*: Datei oder Verzeichnis nicht gefunden
    satire)1)523)~/lala} ls [!A-Z]
    a
    satire)0)524)~/lala}
    
     
  5. #4 z-shell, 17.07.2007
    z-shell

    z-shell Debianator

    Dabei seit:
    30.05.2007
    Beiträge:
    434
    Zustimmungen:
    0
    Ort:
    /home/z-shell
    Code:
    ┌─(z-shell@debian:pts/3)────────────────────────────────────────────────────────────(~/testdir)─┐
    └─(17:43:%)── zsh --version                                                        ──(Di,Jul17)─┘
    zsh 4.3.2 (i686-pc-linux-gnu)
    
    Und gezz:

    Code:
    ┌─(z-shell@debian:pts/3)────────────────────────────────────────────────────────────(~/testdir)─┐
    └─(17:44:%)── l                                                                    ──(Di,Jul17)─┘
    a  A  b  B
    ┌─(z-shell@debian:pts/3)────────────────────────────────────────────────────────────(~/testdir)─┐
    └─(17:44:%)── l [a-z]                                                              ──(Di,Jul17)─┘
    a  b
    ┌─(z-shell@debian:pts/3)────────────────────────────────────────────────────────────(~/testdir)─┐
    └─(17:44:%)── l [A-Z]                                                              ──(Di,Jul17)─┘
    A  B
    
    :D
     
  6. Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Code:
    [zico@marvin test]$ bash --version
    GNU bash, version 3.2.17(1)-release (x86_64-unknown-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.
    [zico@marvin test]$ touch A B a b
    [zico@marvin test]$ ls [a-z]
    a  b
    [zico@marvin test]$ ls [A-Z]
    A  B
    [zico@marvin test]$ ls [!A-Z]
    a  b
    [zico@marvin test]$ ls [!a-z]
    A  B
    [zico@marvin test]$ ls [!a-z]*
    A  B
    [zico@marvin test]$ ls [!A-Z]*
    a  b
     
  7. #6 angelsfall, 17.07.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Ok, danke an alle. Also entweder eine neuere Version oder ne andere Shell ;)
     
  8. #7 b3ll3roph0n, 17.07.2007
    b3ll3roph0n

    b3ll3roph0n Tripel-As

    Dabei seit:
    13.07.2007
    Beiträge:
    160
    Zustimmungen:
    0
    Nö! ;)

    Das hat nichts mit der bash-Version zu tun, sondern mit der Sortierung der Zeichen.

    man bash
    Schau doch mal nach auf welchen Wert LC_COLLATE bei dir gesetzt ist.
    Ich vermute mal bei dem Rechner, auf dem das globbing nicht wie gewünscht funktioniert ist LC_COLLATE nicht auf C bzw. POSIX gesetzt.



    Beispiel:
    Code:
    $ echo $LC_COLLATE
    C
    $ ls [A-Z]*
    A  B
    $ ls [a-z]*
    a  b
    Code:
    $ echo $LC_COLLATE
    
    $ ls [A-Z]*
    A  b  B
    $ ls [a-z]*
    a  A  b  B
    Code:
    $ echo $LC_COLLATE
    POSIX
    $ ls [A-Z]*
    A  B
    $ ls [a-z]*
    a  b
    In jedem Fall sollte aber
    Code:
    $ ls [[:upper:]]*
    bzw.
    Code:
    $ ls [[:lower:]]*
    funktionieren.
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 angelsfall, 17.07.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Wow, danke, b3ll3roph0n, das wars!
     
  11. Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Und wieder was gelernt. :)
     
Thema:

Shell Wildcards Bug?

Die Seite wird geladen...

Shell Wildcards Bug? - Ähnliche Themen

  1. Shell: Funktion ls Not found

    Shell: Funktion ls Not found: Hallo zusammen. Ich habe vor längerer Zeit mal mit Ubuntu gearbeitet wo ich auch ein paar befehle im Terminal gelernt habe. Nun zu meinem...
  2. HandbrakeCLI Shell Skript

    HandbrakeCLI Shell Skript: Hallo zusammen und Schöne grüße aus Süddeutschland. Ich versuche mich gerade an einem Skript für Handbrake. Ich bin ein Anfänger , und habe mir...
  3. Shell Skript beschleunigen

    Shell Skript beschleunigen: Hallo zusammen, ich bin neu hier und hab gerade angefangen mich an Schell Skripte zu wagen. Nun hab eine Frage ich hab ein Skript geschrieben und...
  4. [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen

    [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen: Hallo, ich hoffe ihr könnt mir helfen. Ich entwerfe im Moment ein Skript, welches den Callmonitor (Telnet) auf meiner FritzBox abfragt und wenn...
  5. Shell-Skript Datum in einer Datai suchen

    Shell-Skript Datum in einer Datai suchen: Hallo zusammen Ich komm eigentlich aus der Klicki-Bunti-Welt von Windows. Seit geraumer Zeit versuche ich meine Künste mit verschiedenen...