Summe von Zeilen in mehreren Dateien

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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!
    Last edited by ; 11-01-2008, 17:44.

    Comment


    • #3
      ausdrucken und zählen.

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

      Comment


      • #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

        Comment


        • #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

          Comment


          • #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!

            Comment


            • #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;
              ?>
              Last edited by Benny-one; 13-01-2008, 17:33.
              Sunshine CMS
              BannerAdManagement
              Borlabs - because we make IT easier
              Formulargenerator [color=red]Neu![/color]
              Herkunftsstatistik [color=red]Neu![/color]

              Comment


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

                Comment


                • #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.
                  Attached Files

                  Comment


                  • #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

                    Comment


                    • #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".

                      Comment


                      • #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]

                        Comment


                        • #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]

                          Comment

                          Working...
                          X