Auflisten von Dateien, bitte um schnelle Hilfe

neo2

Well-known member
Hi!

Ich hab morgen BCS-Test (Betriebssysteme und Computerarchitektur) und wollte ein bisschen die Aufgabestellungen, die uns der Lehrer zum Üben gegeben hat durchmachen, hab aber keine Ahnung wie das gehen soll:

Geben Sie in einem Ordner alle Dateien aus, die ein 'm' an zweiter Stelle haben
Geben Sie in einem Ordner alle Dateien aus, die ein 'm', 'o', oder 'e' an zweiter Stelle haben
Geben Sie in einem Ordner alle Dateien aus, die einen Buchstaben von 'a' bis 'm' an zweiter Stelle haben

Bitte helft mir!
 
neo2 schrieb:
Hi!

Ich hab morgen BCS-Test (Betriebssysteme und Computerarchitektur) und wollte ein bisschen die Aufgabestellungen, die uns der Lehrer zum Üben gegeben hat durchmachen, hab aber keine Ahnung wie das gehen soll:

Geben Sie in einem Ordner alle Dateien aus, die ein 'm' an zweiter Stelle haben
Geben Sie in einem Ordner alle Dateien aus, die ein 'm', 'o', oder 'e' an zweiter Stelle haben
Geben Sie in einem Ordner alle Dateien aus, die einen Buchstaben von 'a' bis 'm' an zweiter Stelle haben

Bitte helft mir!

ls | grep "^.m"
ls | grep "^.[m,o,e]"
ls | grep "^.[a-m]"

Kurze Erklärung ls gibt einfach alle Dateien aus, die werden dann mittels Pipe (|) an grep weitergegeben welches mit Regular Expressions arbeitet.
Hier bedeutet ^ dass das Wort hier anfängt. Der . ist ein Platzhalter für genau ein zeichen. Danach kommt beim ersten halt das zeichen m, beim zweiten in den eckigen Klammern eine Auflistung (,). Der , kann weggelassen werden dient aba oft zu einer besseren Lesbarkeit und beim letzten in den eckigen Klammern halt ein Bereich (-).

Hoff dein Lehrer hatt sich das so vorgestellt.

Mfg
 
vielen Dank für eure schnellen und gut verständlichen Antworten!
 
totallymad schrieb:
ls | grep "^.m"
ls | grep "^.[m,o,e]"
ls | grep "^.[a-m]"

Kurze Erklärung ls gibt einfach alle Dateien aus, die werden dann mittels Pipe (|) an grep weitergegeben welches mit Regular Expressions arbeitet.
Hier bedeutet ^ dass das Wort hier anfängt. Der . ist ein Platzhalter für genau ein zeichen. Danach kommt beim ersten halt das zeichen m, beim zweiten in den eckigen Klammern eine Auflistung (,). Der , kann weggelassen werden dient aba oft zu einer besseren Lesbarkeit und beim letzten in den eckigen Klammern halt ein Bereich (-).

Hoff dein Lehrer hatt sich das so vorgestellt.

Mfg

Geht das mit ls alleine nicht? Würde mich interressieren?
 
Jackomo schrieb:
Geht das mit ls alleine nicht? Würde mich interressieren?

Nein tut es nicht. Die Linux/Unix Philosophie is halt so aufgebaut, dass man einfach mittels einer Pipe die Ausgabe an ein weiteres Programm weiterleitet damit dieses weitere Funktionen durchführt.

Ist deshalb äußerst effizient damit net jedes Programm leicht anderst arbeitet um eine gewisse Operation durchzuführen und es muss nur einmal programmiert werden.
 
Heißt das, dass "ls" nicht mal die beiden grundlegensten Wildcards "*,?" verwenden kann? Die eigentlich am meisten benötigt werden. Muss man da extra Regular Expressions auspacken?
 
Man kann schon mit * suchen. Nur das *.* Funktioniert nicht da der Dateiaufbau bei Linux anders ist. Dateien haben in Linux den Punkt auch oft am Anfang (z.B. .bashrc).
Man könnte zwar mit "ls *m*" suchen, aber dann kanst du die Suche nicht auf die zweite Stelle beschränken.
 
ls m* was eine vergleichbare ausgabe zu ls | grep ^m haben würde gehen aber es is nur in den seltensten fällen wirklich brauchbar.
Weil wennst weisst dast was mit m zb ausführen willst machst gleich zb ./m und haust dann zweimal auf tab.
 

Beliebte Schlagwörter

Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.

Zurück
Oben Unten