Sie sind nicht angemeldet.

  • »Kombat El Wombat« ist der Autor dieses Themas

Beiträge: 7

Registrierungsdatum: 31.10.2017

Derivat: Ubuntu

Architektur: 64-Bit PC

Desktop: unbekannt

  • Nachricht senden

1

31.10.2017, 12:44

Suche mit Wildcards

Hallo zusammen,
Ich bin wirklich neu in der Linux-Welt und versuche gerade mich in Bash.Commands einzuarbeiten. Dabei bin ich innerhalb einer Aufgabenstellung auf ein kleines Problem gestoßen.
Die Aufgabenstellung lautet: "Wie kann man sich im Arbeitsverzeichnis Dateien anzeigen lassen, die mit einem kleinen Buchstaben anfangen, irgendwo einen Punkt enthalten und mit einem großen Buchstaben enden."

Mein erster Ansatz war:

Quellcode

1
ls [a-z]*.*[A-Z] 

Das Ergebnis sind allerdings alle Dateien die einen Punkt enthalten egal ob Anfangs- oder Endbuchstabe groß oder klein geschrieben sind.

Mein zweiter Ansatz war:

Quellcode

1
ls [a-z]*.*[!a-z]

Das Ergebnis ist genau eine Datei mit dem Namen "lu.lZ" es gäbe aber mehr Dateien die auf die Beschreibung der Aufgabenstellung passen würden.

Ich habe schon mit Verschiedenen anderen Sachen herum gespielt und ich komme einfach auf keinen grünen Zweig. Ich weiß nicht ob es relevant ist, aber derzeit läuft Ubuntu auf VB.
Ich wäre sehr dankbar für eine Lösung und/oder Erklärung, da ich noch kein Wissen habe an dem ich zweifeln könnte :S

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Kombat El Wombat« (01.11.2017, 12:11)


2

31.10.2017, 22:00

Quellcode

1
ls -d [[:lower:]]*.*[[:upper:]]
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl

  • »Kombat El Wombat« ist der Autor dieses Themas

Beiträge: 7

Registrierungsdatum: 31.10.2017

Derivat: Ubuntu

Architektur: 64-Bit PC

Desktop: unbekannt

  • Nachricht senden

3

01.11.2017, 12:11

Shiny! auf [:upper:] und [:lower:] war ich auch schon gekommen das -d macht den Unterschied. Ich danke!

4

01.11.2017, 13:48

'-d' lässt die Inhalte von Verzeichnissen aus, weil es ja nur das aktuelle Verzeichnis sein soll. -> 'man ls'
Zur Selektion der angezeigten Dateien siehe 'man bash' -> "Pathname expansion".
Die genannte Lösung zeigt auch Namen mit mehr als einem Punkt an. Die Aufgabenstellung war da nicht eindeutig.
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl

  • »Kombat El Wombat« ist der Autor dieses Themas

Beiträge: 7

Registrierungsdatum: 31.10.2017

Derivat: Ubuntu

Architektur: 64-Bit PC

Desktop: unbekannt

  • Nachricht senden

5

15.11.2017, 10:24

Danke für den Hinweis!
Ich hab selbst noch mal rumprobiert und lass den Command einfach mal da, falls irgend wann jemand mal das selbe Problem haben sollte.
Aufgabenstellung: "Wie kann man sich im Arbeitsverzeichnis Dateien anzeigen lassen, die mit
einem kleinen Buchstaben anfangen, irgendwo einen Punkt enthalten und
mit einem großen Buchstaben enden. Maximale Anzahl an Punkten ist 1."

Quellcode

1
ls -d [[:lower:]]*([!.]).*([!.])[[:upper:]]