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