Martin Deppe schrieb:
Within [ and ], the syntax [.symbol.] matches the collating symbol symbol.
Letzteres sagt mir, daß die Zeichenkette offensichtlich deshalb nicht "verstanden" wird, weil es sich dabei um den unvollständig angegebenen Fall "[.symbol.]" handelt.
Wenn man die Klammern jedoch wegläßt, werden nicht nur alle Nicht-Verzeichnis-Verzeichniseinträge angezeigt, sondern auch die Inhalte aller Verzeichnisse, die mit einem Punkt beginnen - auch das aktuelle (".") und das darüber liegende (".."). Möchte man letzteren Effekt nicht, muß man die Option "-d" angeben.
Ich hoffe, das bringt etwas mehr Verstehen in die Geschichte!
Viel Spaß beim Ausprobieren Martin
Ok also das mit der -d option und .* hilft weiter doch offensichtlich verstehe ich den Satz "Within [ and ], the syntax [.symbol.] matches the collating symbol symbol." nicht. Wenn ich nun will, dass alle Verzeichnisse angezeigt werden die mit "d" "g" und eben "." beginnen, wie soll ich dann vorgehen? Denn eben ls -d [dg.]* zeigt mir brav alles was mit "d" oder "g" beginnt. Aber der Punkt wird unterschlagen. Aber schon mal Danke für die Anteilnahme :-) Christa p.s. Ich komme übrigens deshlab auf dieses Problem weil ich einfach mal die Beispiele aus "Einführung in die bash" aus dem O'Reilly Verlag durchgespielt habe. Und in dem wird behauptet das dass ginge. -- DSL-Aktion wegen großer Nachfrage bis 28.2.2006 verlängert: GMX DSL-Flatrate 1 Jahr kostenlos* http://www.gmx.net/de/go/dsl
Hallo, Am Tue, 14 Feb 2006, Christa Gerber schrieb: [..]
Ok also das mit der -d option und .* hilft weiter doch offensichtlich verstehe ich den Satz "Within [ and ], the syntax [.symbol.] matches the collating symbol symbol." nicht.
Das gilt _INNERHALB_ von []. Also '[[.x.]]'. Analog: [[:alpha:]] und [[=c=]]. Auf deutsch lautet obiger Satz (etwas komisch): "Innerhalb von [ und ] trifft ein Ausdruck [.XY.] auf die Sortierreihenfolge des Symbols XY zu." Klingt komisch.
Wenn ich nun will, dass alle Verzeichnisse angezeigt werden die mit "d" "g" und eben "." beginnen, wie soll ich dann vorgehen?
Denn eben ls -d [dg.]* zeigt mir brav alles was mit "d" oder "g" beginnt. Aber der Punkt wird unterschlagen.
Das liegt daran wie die shell das [dg.]* expandiert. Nimm mal: echo ls -d [dg.]* Das was du willst bekommst du mit: ls -d .* [dg]* -dnh -- Disclaimer - These opiini^H^H damn! ^H^H ^Q ^[ .. :w :q :wq :wq! ^d X^? exit X Q ^C ^c ^? :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZZZZZ ^H man vi ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d man help ^C exit ?Quit ?q CtrlShftDel "Hey, what does this button d..."
Andre Tann wrote:
David Haller, Mittwoch, 15. Februar 2006 00:40:
Das liegt daran wie die shell das [dg.]* expandiert. Nimm mal:
echo ls -d [dg.]*
andy@alphaphi:~> echo ls -d [dg.]* ls -d [dg.]*
Was bedeutet das?
daß du nix passendes im aktuellen Verzeichnis hast? Bei mir kommt: joe@linux:~> echo ls [dg.]* ls devel dosemu getmailrc-example go.at graphic was hindert an ls [dg]* \.* ??? joerg
David Haller wrote:
Hallo,
Am Wed, 15 Feb 2006, Joerg Thuemmler schrieb:
was hindert an
ls [dg]* \.*
Wozu der Backslash?
Der Backslash entwertet die Sonderfunktion des nachfolgenden Zeichens. Wenn selbiges aber gar keine hat (wie in diesem Fall), macht es keinen Unterschied. Man kann ihn also getrost weglassen ;-) Gruß Martin
participants (5)
-
Andre Tann
-
Christa Gerber
-
David Haller
-
Joerg Thuemmler
-
Martin Deppe