2012-04-02 11 views

Respuesta

8

Si está en UNIX, me gustaría ir con la herramienta wc. Usualmente uso wc -l *.coffee */*.coffee etc. porque es fácil de recordar. Sin embargo, una versión recursiva sería

wc -l `find <proj-dir> -type f | grep \.coffee$` 

que se ejecuta el find command, que lista recursivamente archivos de tipo f, o los archivos normales, se introducirán en el grep, que filtra hacia abajo a sólo los archivos CoffeeScript, y la salida de ello es utilizado como los argumentos de la línea de comando a wc (-l señala un recuento de líneas).

Editar: Ahora no queremos contar líneas en blanco o comentarios (estamos captando solamente comentarios de una línea aquí). Perdemos las cuentas por-archivo, pero aquí va:

cat `find <proj-dir> -type f | grep \.coffee$` | sed '/^\s*#/d;/^\s*$/d' | wc -l 

nos encontramos con los archivos CoffeeScript, y luego cat ellos. Luego, sed quita las líneas que constan solo de espacios en blanco o tienen espacios en blanco seguidos de un #. Finalmente, nuestro amigo wc cuenta las líneas restantes.

+0

Esto es genial! Pero solo para ser quisquilloso: ¿hay alguna posibilidad de solución que omita las líneas en blanco y las líneas que comienzan con "#" para las líneas de código __source__? No creo que use el comentario de bloque en ningún lugar de mi código (###), así que eso sería todo lo que necesito. – Mitch

Cuestiones relacionadas