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.
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