h1

Zeilen aller Dateien des Ordner rekursiv zählen (bash)

Januar 14, 2009

Gestern wollte ich zählen, aus wieviel Zeilen Code ein Projekt an dem ich programmiere besteht. Darum sollten alle Zeilen in den Dateien und den Unterordnern des aktuellen Ordners gezählt werden. Das hat sich dann als schwieriger rauszufinden herausgestellt als ich zuerst annahm. Lange Rede kurzer Sinn, hier die Lösung:

charly@lucy:~/py$ wc -l `find -iname „*.py“`

Zu beachten sind die Anführungszeichen um .py, die verhindern, dass „find“ bei falschen Dateinamen abbricht. In diesem Beispiel werden, wie man leicht erkennen kann, nur Dateien die auf  „.py“ enden gefunden. Wer die Suche einengen will, braucht dagegen etwas kompliziertere Parameter. Hier schließe ich nun den ordner „framework“ von der Zählung aus:

charly@lucy:~/py$ wc -l `find -iname „framework“ -prune -o -iname „*.py“`

Prune dient zum Ausschließen von Ordnern aus der Suche, und -o dient zum Verbinden mehrer Befehle. Würde man zum Beispiel zwei Ordner ausschließen würde dies so aussehen:

charly@lucy:~/py$ wc -l `find -iname „framework“ -prune -o -iname „django“ -prune -o -iname „*.py“`

„wc“ kann übrigens neben den Zeilen (-l) auch die Wörter (-w), die Zeichen (-m) und die Bytes (-c) zählen.


4 Kommentare

  1. wow, nicht übel finde ich. Ich hätte es wahrscheinlich irgendwie mit dem magischen Sternchen (*) versucht, aber das wäre vermutlich nichts geworden.

    Weiter so =) xD


  2. Wow richtig geil. Danke fürs posten!


  3. Nice, endlich können wir in der Firma mit dicken Zahlen rum werfen😀


  4. Danke!

    Wichtig, dass die richtigen einfachen Anführungsstriche genommen werden, bei den doppelten scheints egal:
    wc -l `find -iname „*.xml“`
    nicht “ oder “ (bei mir: die oben neben dem ?, nicht die neben \ oder über #)



Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: