Räkna kodrader rekursivt

Tråden skapades och har fått 13 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2004-03-02 10:48

Någon som har skrivit ett eget litet program möjligen? Eller kan hänvisa till ett redan existerande program?

hehhe, inte vilket program som helst kanske.

Är ute efter ett program som man hänvisar till en mapp och att programmet i sin tur räknar upp alla filer och läser av antalet rader kod(dvs alla rader) och om den stöter på en mapp så går den in i den mappen och räknar kodraderna där också.

Sen vill jag i stortsett bara ha reda på hur många rader det blev totalt.

Anyone?

  • Oregistrerad
  • 2004-03-02 10:57

Kan inget program, men ett UNIX-kommando:

cat kodfil.txt | wc -l

  • Medlem
  • Stockholm
  • 2004-03-02 11:01
Ursprungligen av Måns Jonasson:

Kan inget program, men ett UNIX-kommando:

cat kodfil.txt | wc -l

Man tackar, någon som vet hur man kan bygga ut det?
så man ger ett mappnamn som indata och som utdata får man antalet kodrader hittade i samtliga filer inuti mappen och dess undermappar.

  • Oregistrerad
  • 2004-03-02 11:05

Jag ger väl ett tips till då.

wc -l katalog/*.txt

find /path/to/directory -name "*.[hm]" | xargs cat | wc

För att räkna raderna i alla .h och .m filer i given katalog och underkataloger.

Vad är det för mått du är ute efter? Kodrader är ju inte något enhetligt mått.

public int fac(int n)
{
   if (n <= 0)
   {
      return 1;
   }
   else
   {
      return n * fac (n -1);
   }
   return 1;
}

= 12 rader

public int fac(int n) {
   if (n > 1) return n * fac (n -1);
   return 1;
}

= 4 rader

Samma funktion i två olika program-layout- och programmeringstraditioner. Den ena ger tre gånger så många rader. Lägger vi till ytterligare traditioner så tycker XP-folket inte om kommentarer i koden medan de som kör enligt SUN-java-idéer med java-doc osv "kladdar ner" koden med en halv oändlighet av kommentarer. Alla läger har sina poänger men de som drar ut koden och fyller med kommentarer brukar ha lite kod per rad, "spatiös" formatering för att de tycker att det blir klarare då och massor med kommetarer. Mest radikalt motsatta lägret har kompakt kod med lite kommentarer. Skillnaden brukar var att kompakthetslägrets filer oftast är bara 30 % av antalet rader för de mest "spatiösa" för "samma" program.

  • Medlem
  • Stockholm
  • 2004-03-03 11:53

dåligt ordval av mig kanske.
Jag var intresserad av att ta reda på antalet skrivna rader. Dvs räkna upp antalet radbrytningar. Gissar att det är det som "wc -l *.php" gör?

Jag skrev

wc -l *.php news/*.php newsletter/*.php

och så vidare med samtliga undermappar.

Tack för hjälpen! Ska kika mer noga på

find /path/to/directory -name "*.[hm]" | xargs cat | wc 

också för framtida bruk.

Tack tack

Ursprungligen av ivar:

Jag var intresserad av att ta reda på antalet skrivna rader. Dvs räkna upp antalet radbrytningar. Gissar att det är det som "wc -l *.php" gör.

Ska kika mer noga på

find /path/to/directory -name "*.[hm]" | xargs cat | wc 

För att miska arbetet för find (och troligen tiden för att köra programmet) skulle jag då skriva

find /path/to/dir -type f -name "*.php" | xargs cat | wc -l

där [FONT="Courier New"]-type f[/FONT] gör att find endast beaktar filer och struntar i filkataloger och [FONT="Courier New"]-l[/FONT] som väljare till [FONT="Courier New"]wc[/FONT] bara ger radantalet. Normalt ger [FONT="Courier New"]wc[/FONT] tre utresultat, bytecount, character count och newline count. Eftersom du bara var intresserad av PHP-filer lät jag argumentet till [FONT="Courier New"]-name[/FONT] vara enkelt.

  • Medlem
  • Stockholm
  • 2004-03-03 17:33

http://www.phpportalen.net/viewtopic.php?t=22661

Det kanske kan vara något ivar?

  • Medlem
  • Stockholm
  • 2004-05-28 15:46

Någon som har tips på hur man räknar antelet ORD för LaTeX-dokument?? (.tex)

Ska skriva en artikel med ca 3000st ord men vet inte riktigt hur jag ska räkna dem

  • Medlem
  • Stockholm
  • 2004-05-28 19:57

Jag vet inte om LaTeX-filer går att läsa i ASCII-format, men kommandot wc fungerar för att räkna ord också.

wc -l ger antalet rader i filen
wc -w ger antalet ord (ett ord definieras som tecken omgivna av whitespace, vanligtvis space eller tab)
wc -c ger antalet bytes
wc -m ger antalet skrivna tecken

  • Medlem
  • Stockholm
  • 2004-05-29 09:18

Jodå, absolut. Problemet är att man vill komma ifrån alla taggar.

Du kan dra en paralell till att vilja räkna ord i en html-fil men inte inkludera taggarna.
Dvs, på något sätt måste ordräknaren förbise taggarna.

Ursprungligen av ivar:

Jodå, absolut. Problemet är att man vill komma ifrån alla taggar.

Du kan dra en paralell till att vilja räkna ord i en html-fil men inte inkludera taggarna.
Dvs, på något sätt måste ordräknaren förbise taggarna.

Kör detex på filen först. Sen piper du genom wc.

  • Medlem
  • Stockholm
  • 2004-05-29 12:34

Så ja!
Super.

Tackar.

DeTeX hemsida för er nyfikna...

1
Bevaka tråden