Größe des Projektes


  • Mod

    Cuervo hat PrettyOS Rev. 859 "vermessen":

    C-Dateien: 20304 Zeilen, 
    H-Dateien: 13133 Zeilen
    Assembler:   829 Zeilen
    -----------------------
               34266 Zeilen
    


  • Befehle zum Zeilenzählen (wichtig: Kommentare werden eingeschlossen!):

    C-Dateien:

    wc -l `find . -name "*.c" -print` | tail -1 | awk '{print $1}'
    

    H-Dateien:

    wc -l `find . -name "*.h" -print` | tail -1 | awk '{print $1}'
    

    C- und H-Dateien:

    wc -l `find . -name "*.[ch]" -print` | tail -1 | awk '{print $1}'
    

    Assembler-Dateien:

    wc -l `find . -name "*.asm" -print` | tail -1 | awk '{print $1}'
    


  • Kommentare und leere Zeilen mitzuzählen ist nicht so prickelnd 😉



  • Cuervo schrieb:

    C-Dateien:

    wc -l `find . -name "*.c" -print` | tail -1 | awk '{print $1}'
    

    Deine Variante hat zwei Probleme:
    1. `find ...` wird vollständig expandiert, bevor wc aufgerufen wird. Dadurch kann die command line zu lang werden, falls find zu viele Dateien findet.
    2. Falls es Dateien oder Pfade mit Leerzeichen gibt, wird wc sich daran verschlucken.

    Bei so kleinen Zeilen, die nur ad-hoc auf vertrauenswürdigen Ordnerstrukturen ausgeführt werden, ist das natürlich nicht so relevant. Aber die Zeilen, die du gepostet hast, wären in der Form für ein shell script nicht verwendbar, weil sie zu empfindlich reagieren auf die beiden Punkte oben. Deswegen dachte ich, dass ein Hinweis angebracht wär.

    Eine robustere Lösung wäre:

    find . -name '*.c' -execdir cat '{}' + | wc -l
    


  • Und die richtige Lösung wäre, sowas wie sloccount zu benutzen. 😉


  • Mod

    Die praktisch richtige Lösung ist, einfach weiter zu programmieren, also stetiges Wachstum, so wie bei Windows oder Linux. 😃 😉


  • Mod

    Cuervo schrieb:

    Befehle zum Zeilenzählen (wichtig: Kommentare werden eingeschlossen!):

    C-Dateien:

    wc -l `find . -name "*.c" -print` | tail -1 | awk '{print $1}'
    

    H-Dateien:

    wc -l `find . -name "*.h" -print` | tail -1 | awk '{print $1}'
    

    C- und H-Dateien:

    wc -l `find . -name "*.[ch]" -print` | tail -1 | awk '{print $1}'
    

    Assembler-Dateien:

    wc -l `find . -name "*.asm" -print` | tail -1 | awk '{print $1}'
    

Anmelden zum Antworten