Mit grep oder egrep nur Dateinamen ausgeben?
Weiß jemand, wie ich mit grep oder egrep (es darf nichts anderes sein) nur die geld markierten Dateinamen ausgegeben bekomme?
Also nur die Dateien von asterix, so wie im zweiten Bild gezeigt. Es muss auch später mit anderen Dateien von asterix funktionieren.
2 Antworten
grep selber kann ja nicht auf das direktory zugreifen also muss es irgenwas geben was das erstmal liefert
grep -oP 'asterix *\w+ *\d+ *\d+. \w+ \d+:\d+ \K(\w+.\w+)' < <(ls -all)
das \K extrahiert nur das was du von der Zeile brauchst .
ergänzt mit hilfe von @whgoffline
find . -maxdepth 1 -user asterix
Geht zwar sicher irgendwie auch mit grep, aber dann entsprechend um einiges komplizierter. Man kann ja nämlich nicht einfach im ls output nach asterix suchen, da man dann ja auch z.B.
-rw-r--r--. 1 matecki users 42 3. Feb 16:04 komischerDateiNameMit_asterix.c
finden würde :/
Was macht das rw und die 10 am Anfang? Also ich weiß für was rw steht, nur nicht in diesem Kontext
Naja vorab habe ich da leider einen größeren Fehler gemacht, da ja auch x,d,c,b, und l in dem ersten Teil der ls Ausgabe erlaubt wären.
Das müsstest du Mal recherchieren was da alles für deine Aufgabe Sinn macht zu erlauben, und das einfach einfügen z.B. [rwxcdbl-]{10}. Wobei sowas wie c und l eigentlich nur ganz vorne kommen darf. Sowas wie d vorne dran würde ja auch Ordner als Dateien erlauben. Dazu aber am besten einfach Mal die ls Doku lesen und ein wenig rumprobieren.
Das [rw-]{10} erwartet genau zehn Zeichen, wovon jedes entweder ein r,w oder - Zeichen sein muss. Das erlaubt streng genommen natürlich auch sowas wie ---------- also ungültige Dateirechte. Aber darum sollte sich ja eigentlich ls bzw. das Dateisystem kümmern.
hast du eine idee wie man das ls -all bei meiner antwort hinter das grep bekommt bzw in das grep
Ich glaube rein bekommt man es nicht, aber dahinter sollte ca. so gehen
grep -oP 'asterix ...' < <(ls -all)
Danke für die Antwort, es wurde leider ausdrücklich gesagt dass ich nur grep oder egrep benutzen darf, wahrscheinlich um es schwerer zu machen lol