Summe von Zeilen in mehreren Dateien

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Summe von Zeilen in mehreren Dateien

    Hallo,

    ich arbeite zur Zeit an einen größeren Projekt und würde gerne wissen, wie viele Zeilen mein Projekt umfasst?

    hat jemand eine Ahnung wie ich an die Zahl komme?


    Gruß Tarlar

  • #2
    sowas wie dies hier ?!

    PHP-Code:
    <?php 

    $verz 
    opendir("./");  // Verzeichnis öffnen 

    while( $datei readdir($verz) )  // Für jede Datei.... 

      if(!
    is_dir($datei) )  // ...aber nicht für Ordner 
      

         
    $fp fopen($datei,"r");  // datei öffnen 
         
    $i 0;  // hier stehen nachner die zeilen 

         
    while ( $zeile fgets($fp,1000) )  // fgets liest zeilenweise aus datei 
         

          
    $i++; 
         } 

         echo 
    $datei." hat ".$i." Zeilen<br>"
         
    fclose($fp); 
      } 

    ?>

    ps.: NICHT getestet!
    Zuletzt geändert von ; 11.01.2008, 18:44.

    Kommentar


    • #3
      ausdrucken und zählen.

      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Original geschrieben von Kropff
        ausdrucken und zählen.

        peter
        Gut, ich schick dir die 200 Dateien und du zählst mir das? Das ist nett

        Kommentar


        • #5
          Original geschrieben von Tarlar
          Gut, ich schick dir die 200 Dateien und du zählst mir das? Das ist nett
          den spruch konnte ich mir einfach nicht verkneifen

          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            den spruch konnte ich mir einfach nicht verkneifen
            humor von älteren menschen

            das von chinaoel sieht beim überfliegen zumindest nach einem versuch aus, den es zu testen sich lohnen könnte
            tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
            documentation: php.net mysql.com framework.zend.com

            Die Nachtwache!

            Kommentar


            • #7
              PHP-Code:
              <?php
              // getestet und funktioniert
              $path "D:/xampp/htdocs";

              $lines 0;
              foreach (new 
              RecursiveIteratorIterator(
                         new 
              RecursiveDirectoryIterator($pathRecursiveDirectoryIterator::KEY_AS_PATHNAME), RecursiveIteratorIterator::CHILD_FIRST) as $file => $info) {
                  if (
              $info->isFile()) {
                      if (
              strstr($file'.php')) {
                          
              $lines += count(file($file));
                      }
                  }
              }

              echo 
              $lines;
              ?>
              Zuletzt geändert von Benny-one; 13.01.2008, 18:33.
              Sunshine CMS
              BannerAdManagement
              Borlabs - because we make IT easier
              Formulargenerator [color=red]Neu![/color]
              Herkunftsstatistik [color=red]Neu![/color]

              Kommentar


              • #8
                Danke, das klappt sogar mit Unterverzeichnissen...26k Zeilen: nicht schlecht

                Kommentar


                • #9
                  wc -l `find /path/to/project -regextype posix-egrep -regex ".*\.(class|inc|php)" -print` | tail -1 | awk '{print $1}'

                  Das dürfte wesentlich schneller sein. Bei 26k Zeilen vielleicht noch nicht spürbar, aber ich zähle damit 1.5M Zeilen in 2 Sekunden. count(file()) braucht dafür vermutlich deutlich länger.

                  Wer mehr als `getconf ARG_MAX` Dateien hat, muß den Befehl umbauen (xargs).

                  Habe das mal in ein Script geschustert und angehangen.
                  Angehängte Dateien

                  Kommentar


                  • #10
                    Code:
                    time wc -l `find /home/xxx/ -regextype posix-egrep -regex ".*\.(class|inc|php)" -print` | tail -1 | awk '{print $1}'
                    49730
                    
                    real    0m2.435s
                    user    0m0.156s
                    sys     0m0.116s
                    Man muss ich ne scheiß Maschine haben
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      Deine real-Zeit legt nahe, dass da gerade noch andere Dinge auf der Maschine liefen. Das würde auch die Ausführung eines PHP-Scripts verzögern.
                      Meine Angabe war übrigens nur eine "gefühlte".

                      Kommentar


                      • #12
                        @onemorenerd: klar deine ist viiieel schneller, aber meine läuft unter windoof und außerdem einfacher einzusetzen, sollte man vll. auch noch berücksichtigen.
                        Sunshine CMS
                        BannerAdManagement
                        Borlabs - because we make IT easier
                        Formulargenerator [color=red]Neu![/color]
                        Herkunftsstatistik [color=red]Neu![/color]

                        Kommentar


                        • #13
                          Man muss ich ne scheiß Maschine haben
                          Code:
                          time wc -l `find -E cms/ -regex ".*\.(php|tpl|inc)"`|tail -1|awk '{print $1}'
                          10323
                          
                          real	0m0.050s
                          user	0m0.027s
                          sys	0m0.024s
                          Year!
                          und außerdem einfacher einzusetzen, sollte man vll. auch noch berücksichtigen
                          Konsole > (Browser) + PHP
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar

                          Lädt...
                          X