Unter anderem Grep in der Shell nutzen

BasicC

Erfahrenes Mitglied
Hallo

ich würde gern vier Aufgaben lösen ich habe Ansätze aber keines funktioniert.

1.) Ermitteln Sie die Anzahl der Dateien unter /usr/lib/ die weder ein rnoch ein n im Namen haben
Lösungsanatz: grep /usr/lib/ -v [^nr]

2.) Ermitteln Sie die Anzahl der Dateien unter /usr/bin/ welche die Zeichen- kette pdf Teil des Dateinamens ist.
Lösungsansatz: find /usr/bin/ -iname | grep /usr/bin/ *.pdf

3.) Ermitteln Sie die Anzahl der Dateien unter /usr/bin/ die mit einem t beginnen und mit einem t enden.
Lösungsansatz: ls /usr/bin/ {t..t}

4.) Ermitteln Sie die Anzahl der Dateien unter /usr/bin/ die eine Zahl zwi- schen 2 (inklusive) und 5 (inklusive) im Namen haben.
Lösungsansatz: da habe ich leider noch nichts gefunden.

Ich hoffe jemand kann mir helfen.

ich schreibe alle unter einander in eine Bash Datei
 
ungetestet, aber adhoc würde ich sagen:
1) ls /usr/lib/ | grep -v [nr]
2) ls /usr/bin/ | grep -c pdf
3) ls /usr/bin/ | grep -c "^t.*t$"
4) ls /usr/bin/ | grep -c "[2-5]"
 
Zuletzt bearbeitet:
Öhm ja gut, also ich hätte jetzt vielleicht nicht direkt die Lösungen rausgerückt :ROFLMAO:

Aber offensichtlich geht es hier darum BasicC, euch die Regulären Ausdrücke (engl. regular expressions) näher zu bringen. Super Thema, weil du das sicherlich noch oft brauchen kannst.

Im Prinzip hat HonniCilest ja schon die Lösungen gezeigt, allerdings sollst du ja eigentlich die Dateien Zählen (und nicht nur auflisten).
Da bietet sich wc an. Ne kein Klo, im Zweifel einfach kurz $ man wc eingetippst ;)

Bsp: $ ls /usr/lib/ | grep -v [nr] | wc -l gibt auf meinem Ubuntu-Rechner 80 aus.
Also quasi den Output von ls in grep umgeleitet (via Pipe) und die von grep sortierten Outputs dann mit wc gezählt.

Gruß Technipion

EDIT: Ich bin doof, wollte eigentlich noch nen Link zu nem Cheat-Sheet einfügen:
http://www.cbs.dtu.dk/courses/27610/regular-expressions-cheat-sheet-v2.pdf
Soetwas findest du zahlreich im Internet @BasicC, die sind wirklich hilfreich - gerade in der Anfangszeit.
 
Zurück