Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Benutzerinformationen überspringen
User
Registrierungsdatum: 21.08.2011
Derivat: Ubuntu
Architektur: 32-Bit PC
Desktop: GNOME 2.x
Benutzerinformationen überspringen
User
Registrierungsdatum: 21.08.2011
Derivat: Ubuntu
Architektur: 32-Bit PC
Desktop: GNOME 2.x
Benutzerinformationen überspringen
User
Registrierungsdatum: 21.08.2011
Derivat: Ubuntu
Architektur: 32-Bit PC
Desktop: GNOME 2.x
Die liegen dann aber in Verzeichnissen, die ihrerseits mit [g-w] anfangen. Probier einmalich erhalte Trotzdem noch Einträge die mit a anfangen
Quellcode |
|
1 |
ls -d [g-w]* |
Benutzerinformationen überspringen
User
Registrierungsdatum: 21.08.2011
Derivat: Ubuntu
Architektur: 32-Bit PC
Desktop: GNOME 2.x
Benutzerinformationen überspringen
Ubuntu-Forum-Team
Registrierungsdatum: 03.05.2007
Derivat: Xubuntu
Architektur: 64-Bit PC
Desktop: XFCE
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
usera@pc:~/test$ ls -l insgesamt 0 -rw-r--r-- 1 u u 0 2011-10-09 00:13 a.txt -rw-r--r-- 1 u u 0 2011-10-09 00:14 A.txt -rw-r--r-- 1 u u 0 2011-10-09 00:14 B.txt usera@pc:~/test$ ls a* a.txt usera@pc:~/test$ ls A* A.txt usera@pc:~/test$ ls [A]* A.txt usera@pc:~/test$ ls [a]* a.txt usera@pc:~/test$ ls [b]* ls: Zugriff auf [b]* nicht möglich: Datei oder Verzeichnis nicht gefunden usera@pc:~/test$ ls [B]* B.txt usera@pc:~/test$ ls [a-b]* a.txt A.txt usera@pc:~/test$ ls [a-B]* a.txt A.txt B.txt usera@pc:~/test$ ls [A-B]* A.txt B.txt usera@pc:~/test$ cp B.txt b.txt wolfi@wolfispc:~/test$ ls a.txt A.txt b.txt B.txt c.txt usera@pc:~/test$ ls [a-B]* a.txt A.txt b.txt B.txt usera@pc:~/test$ ls [A-B]* A.txt b.txt B.txt usera@pc:~/test$ |
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Jeff« (09.10.2011, 09:33)
Wie Jeff schon angedeutet hat: Es liegt an der Sortierung. Du siehst es an Deinen ersten drei Zeilen und dann in Zeile 26: aAbBcC... An einer längeren Kette sieht man das noch schöner.Warum liefert Zeile 18 auch A.txt
[A-B] beginnt erst bei A und ignoriert daher das a, aber b und B sind enthalten. [a-B] liefert sie dann auch alle.Zeile 27 könnte ich ebenfalls nachvollziehen, wenn nicht Zeile 29 auch b.txt, aber nicht a.txt liefern würde
Das hat wowi auch erst in Zeile 24 erzeugt.Allerdings vermisse ich dann in deiner Zeile 20 das kleine b.txt
Benutzerinformationen überspringen
Ubuntu-Forum-Team
Registrierungsdatum: 03.05.2007
Derivat: Xubuntu
Architektur: 64-Bit PC
Desktop: XFCE
Zitat
Note that when using range expressions like [a-z] (see below), letters of the other case may be included, depending on the setting of LC_COLLATE.
[...] Matches any one of the enclosed characters. A pair of characters separated by a hyphen denotes a range expression; any
character that sorts between those two characters, inclusive, using the current locale's collating sequence and character
set, is matched. If the first character following the [ is a ! or a ^ then any character not enclosed is matched. The
sorting order of characters in range expressions is determined by the current locale and the value of the LC_COLLATE
shell variable, if set.
Quellcode |
|
1 |
echo ls -l [A-Z].txt |
Benutzerinformationen überspringen
Ubuntu-Forum-Team
Registrierungsdatum: 03.05.2007
Derivat: Xubuntu
Architektur: 64-Bit PC
Desktop: XFCE
Mit RegExp hat es hier eigentlich nur am Rande zu tun (wenn überhaupt).
Ich habe es natürlich auch mal ausprobiert: grep macht es bei Verwendung von RegExp genauso (für mich "falsch") wie die Bash. Somit steht es als mMn also verkehrt im Buch Könnte es nicht sein, dass die Bash hier auf die gleichen Routinen zurückgreift?Im Buch "Reguläre Ausdrücke kurz&gut" von O' Reilly steht auch schon auf Seite 14 "Zum Beispiel erkennt [a-z] jeden kleingeschriebenen ASCII-Buchstaben". Ist das bei RegExp also anders, oder im Buch falsch
Da wird bei mir aber immer nur das Geschriebene ausgegeben? Meintest Du das wirklich soRecht einfach herausfinden, was die Bash mit solchen Konstrukten anfangen wird, kann man übrigens immer mit der "Trockenübung" echo. ZB:
Quellcode
1 echo ls -l [A-Z].txt
Sagt dir sofort, was "ls" im Ernstfall zu Speisen bekommen würde
Benutzerinformationen überspringen
User
Registrierungsdatum: 10.03.2005
Derivat: Ubuntu
Architektur: 64-Bit PC
Desktop: GNOME 3.0
Andere Betriebssysteme: debian
Zitat
flvstreamer$ ls -1 |grep --color "[e-tA-Z]*\.c"
amf.c
flvstreamer.c
log.c
parseurl.c
rtmp.c
rtmpsrv.c
rtmpsuck.c
streams.c
thread.c
Quellcode |
|
1 2 |
flvstreamer$ echo ls [e-tA-Z]*\.c ls flvstreamer.c log.c parseurl.c rtmp.c rtmpsrv.c rtmpsuck.c streams.c thread.c |
Jetzt kommt gleich was Kompetentes zu RegExp&Co: Sehe gerade, daß floogy auch da ist.Könnte es nicht sein, dass die Bash hier auf die gleichen Routinen zurückgreift?
Ja, Trockenübung eben. Du siehst dann das Kommando so, wie es tatsächlich aussehen wird, nachdem die Bash ihre ganze Magie hat wirken lassen.Da wird bei mir aber immer nur das Geschriebene ausgegeben? Meintest Du das wirklich so
Benutzerinformationen überspringen
User
Registrierungsdatum: 10.03.2005
Derivat: Ubuntu
Architektur: 64-Bit PC
Desktop: GNOME 3.0
Andere Betriebssysteme: debian
Zitat
Ranges are very collating-sequence-dependent, and portable programs should avoid relying on them.
Quellcode |
|
1 |
man 7 regex |
Benutzerinformationen überspringen
User
Registrierungsdatum: 10.03.2005
Derivat: Ubuntu
Architektur: 64-Bit PC
Desktop: GNOME 3.0
Andere Betriebssysteme: debian
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »floogy« (12.10.2011, 01:26)
Benutzerinformationen überspringen
Gesperrter Benutzer
Registrierungsdatum: 15.10.2014
Derivat: unbekannt
Architektur: unbekannt
Desktop: unbekannt
Andere Betriebssysteme: Debian Jessie, Android-x86 Vbox
Benutzerinformationen überspringen
User
Registrierungsdatum: 10.03.2005
Derivat: Ubuntu
Architektur: 64-Bit PC
Desktop: GNOME 3.0
Andere Betriebssysteme: debian
Zitat
Bash itself cannot recognize Regular Expressions. Inside scripts, it is commands and utilities -- such as sed and awk -- that interpret RE's.
Bash does carry out filename expansion [97] -- a process known as globbing -- but this does not use the standard RE set. Instead, globbing recognizes and expands wild cards. Globbing interprets the standard wild card characters [98] -- * and ?, character lists in square brackets, and certain other special characters (such as ^ for negating the sense of a match). There are important limitations on wild card characters in globbing, however. Strings containing * will not match filenames that start with a dot, as, for example, .bashrc. [99] Likewise, the ? has a different meaning in globbing than as part of an RE.
Sponsorenwerbung: |
Hardware, Computer, PCs, Notebooks & Laptops mit Linux |
Forensoftware: Burning Board®, entwickelt von WoltLab® GmbH
Individuelle Notebooks Laptops - Individuelle Computer PCs - Linux Notebooks & Computers
Lastminute - Ubuntu Linux - Abmahnung - Geek und Nerd Shirt Shop
T-Shirts - sanierung wien