find -- *|xargs file|grep ':*text'|cut -d: -f1|xargs wc -l # Cambia-lo * de find por . para considerar rutas ocultas
Por exemplo (usado contra darkstat [ http://unix4lyfe.org/darkstat/ ]):
$ find -- *|xargs file|grep ':*text'|cut -d: -f1|xargs wc -l 272 acct.c 18 acct.h 98 addr.c 35 addr.h 48 AUTHORS 131 bsd.c 28 bsd.h 524 cap.c 23 cap.h 40 cdefs.h 168 ChangeLog 328 configure.ac 32 contrib/cx.ath.darkstat 67 contrib/ReadMe.MacOS 30 contrib/darkproxy.php [...] 13 README 117 release.sh 32 static/c-ify.c 67 static/style.css 280 static/graph.js 366 str.c 51 str.h 95 test_addr.c 84 test_headers.sh 394 tree.h 11534 total
A falta dunha ferramenta máis “seria” coma SLOCCount serve para ir tirando :P
O funcionamento é bastante sinxelo, primeiro `find` busca tódolos arquivos (O ‘--’ é para evitar que se lie se hai algún arquivo que comeza por ‘-’, o que sigue os ‘--’ sempre son nomes de arquivos/directorios)
find -- * # . para considerar elementos ocultos
O seguinte paso é distinguir os arquivos de texto, `file` diranos o tipo de arquivo, por exemplo:
$ file http.c http.c: ASCII C program text
Só temos que facer `grep` para tomar o que teña "text" despois dos dous puntos e usar cut para recuperar os nomes dos arquivos
grep ':*text'| # Filtramos na busca dos arquivos de texto cut -d: -f1 # Tomamos os nomes dos arquivos... supoñendo que ningún conteña ':' :\
O último paso é usar `xargs` para pasar os nomes dos arquivos coma parámetros a `wc` (o parámetro `-l` indica que so temos interes no número de liñas):
$ echo *.c |xargs wc -l # Para observa-lo mecanismo 272 acct.c 98 addr.c 131 bsd.c 524 cap.c 346 conv.c 500 darkstat.c 138 daylog.c 362 db.c 416 decode.c 403 dns.c 197 err.c 386 graph_db.c 1471 hosts_db.c 206 hosts_sort.c 70 html.c 1137 http.c 164 localip.c 144 ncache.c 115 now.c 91 pidfile.c 366 str.c 95 test_addr.c 7632 total
E xa está, de todas formas se tedes a oportunidade mellor probar o SLOCCount, ísto é o que xera para darkstat:
$ sloccount . [...] # Nome dos arquivos que le :\ SLOC Directory SLOC-by-Language (Sorted) 6669 top_dir ansic=6320,sh=349 31 static ansic=31 15 contrib php=15 Totals grouped by language (dominant language first): ansic: 6351 (94.58%) sh: 349 (5.20%) php: 15 (0.22%) Total Physical Source Lines of Code (SLOC) = 6,715 Development Effort Estimate, Person-Years (Person-Months) = 1.48 (17.73) (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05)) Schedule Estimate, Years (Months) = 0.62 (7.45) (Basic COCOMO model, Months = 2.5 * (person-months**0.38)) Estimated Average Number of Developers (Effort/Schedule) = 2.38 Total Estimated Cost to Develop = $ 199,545 (average salary = $56,286/year, overhead = 2.40). [...] # Créditos
Saúdos
No hay comentarios:
Publicar un comentario