Programmzeilen zählen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Programmzeilen zählen

Beitrag von HELLinG3R » 20.11.2006 14:05:38

Hallo,
ich suche nach einer Möglichkeit, Programmzeilen zu zählen.
Bisher benutze ich einen find-Einzeiler:

Code: Alles auswählen

find $directory -type f ! -path '*svn*' ! -path '*doc*' ! -path '*data*' -exec cat "{}" \; | grep -v '^\s+*' |grep -v '^$' | grep -v '^\/\/' | wc -l
Das Problem ist aber hier, dass ein Problem auftritt, sobald binäre Daten geparsed werden.
Gebe ich grep die Option -I mit, dann stirbt die pipe komplett durch Signal 13 auf cat...

Vielleicht weiß jemand, ob es schon ein nettes tool gibt, das sowas macht, oder findet einen Fehler in obigem Script.
Perl macht Spass.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 20.11.2006 14:48:18

Wofuer das cat? Du kannst das doch einfach so weiterreichen:

Code: Alles auswählen

find $directory -type f ! -path '*svn*' ! -path '*doc*' ! -path '*data*' | xargs grep -v '^\s+*' |grep -v '^$' | grep -v '^\/\/' | wc -l

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 20.11.2006 15:24:21

Hi,
Ich würd an deiner Stelle mal sloccount testen:

Code: Alles auswählen

<15:20 drd@bigbad [~]> :) apt-cache show sloccount 
Package: sloccount
...
Description: Programs for counting physical source lines of code (SLOC)
 SLOCCount (pronounced "sloc-count") is a suite of programs for counting
 physical source lines of code (SLOC) in potentially large software systems
 (thus, SLOCCount is a "software metrics tool" or "software measurement tool").
 SLOCCount can count physical SLOC for a wide number of languages;
 listed alphabetically, they are: Ada, Assembly, awk, Bourne shell, C, C++,
 C shell, COBOL, C#, Expect, Fortran, Java, lex/flex, LISP (including Scheme),
 Makefile, Modula3, Objective-C, Pascal, Perl, PHP, Python, Ruby, sed, SQL,
 TCL, Yacc/Bison.
 SLOCCount can automatically determine if a file
 is a source code file or not, and if so, which language it's written in.
 As a result, you can analyze large systems completely automatically.
 SLOCCount also includes some report-generating tools
 to collect the data generated and present it in several different formats.
Tag: interface::commandline, role::sw:utility, works-with::software:source
MfG Fred
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Beitrag von HELLinG3R » 20.11.2006 15:30:45

okay, danke :)
Perl macht Spass.

Antworten