cloc - Contar líneas de código en muchos lenguajes de programación


Mientras trabaja en diferentes proyectos, a veces se le puede solicitar que proporcione un informe o estadísticas de su progreso o simplemente que calcule el valor de su código.

Existe una herramienta simple pero poderosa llamada " cloc - cuenta las líneas de código " que te permite contar todo el número de tu código y excluir comentarios y líneas en blanco al mismo tiempo.

Está disponible en todas las principales distribuciones de Linux y es compatible con múltiples lenguajes de programación y extensiones de archivo y no tiene requisitos específicos para ser utilizados.

En este tutorial, aprenderá a instalar y utilizar cloc en su sistema Linux.

Cómo instalar y usar Cloc en sistemas Linux

Instalar cloc es fácil y simple. A continuación, puede ver cómo instalar cloc en diferentes sistemas operativos con sus administradores de paquetes relacionados:

$ sudo apt install cloc                  # Debian, Ubuntu
$ sudo yum install cloc                  # Red Hat, Fedora
$ sudo dnf install cloc                  # Fedora 22 or later
$ sudo pacman -S cloc                    # Arch
$ sudo emerge -av dev-util/cloc          # Gentoo https://packages.gentoo.org/packages/dev-util/cloc
$ sudo apk add cloc                      # Alpine Linux
$ sudo pkg install cloc                  # FreeBSD
$ sudo port install cloc                 # Mac OS X with MacPorts
$ brew install cloc                      # Mac OS X with Homebrew
$ npm install -g cloc                    # https://www.npmjs.com/package/cloc

Cloc se puede usar para contar líneas en un archivo en particular o en varios archivos dentro del directorio. Para usar cloc simplemente escriba cloc seguido del archivo o directorio que desea examinar.

Aquí hay un ejemplo de un archivo en bash. El archivo en cuestión contiene el siguiente código en bash:

$ cat bash_script.sh

Ahora vamos a ejecutar cloc en él.

$ cloc bash_script.sh

Como puede ver, contó el número de archivos, líneas en blanco, comentarios y líneas de código.

Otra característica interesante de cloc es que incluso se puede utilizar en archivos comprimidos. Por ejemplo, descargué el último archivo de WordPress y ejecuté cloc en él.

$ cloc latest.tar.gz

Aquí está el resultado:

Puedes ver que reconoce los diferentes tipos de código y separa las estadísticas por idioma.

En caso de que necesite obtener un informe para varios archivos en un directorio, puede usar la opción “- by-file” , que contará las líneas en cada archivo y proporcionará un informe para ellos. Esto puede tomar un tiempo para proyectos con muchos archivos y miles de líneas de código.

La sintaxis es la siguiente:

$ cloc --by-file <directory>

Si bien la ayuda de cloc es fácil de leer y comprensible, incluiré algunas de las opciones adicionales que se pueden usar con cloc que algunos usuarios pueden encontrar útiles.

  • --diff <set1> <set2> – computes the differences in code between the source files of set1 and set2. The input can be a mix of files and directories.
  • --git – forces the inputs to be recognized as git targets if the same are not first identified as file or directory names.
  • --ignore-whitespace – ignores the horizontal whitespace when comparing files with --diff.
  • --max-file-size=<MB> – if you want to skip files larger than the given amount MB.
  • --exclude-dir=<dir1>,<dir2> – exclude given comma separated directories.
  • --exclude-ext=<ext1>,<ext2> – exclude the given file extensions.
  • --csv – export results to CSV file format.
  • --csv-delimiter=<C> – use the character <C> as the delimiter.
  • --out=<file> – save the results to <file>.
  • --quiet – suppress all information messages and show only the final report.
  • --sql=<file> – write the results as create and insert statements that can be read by a database program such as SQLite.

Cloc es una pequeña utilidad útil que definitivamente es bueno tener en tu arsenal. Si bien es posible que no se use a diario, puede ayudarlo cuando tenga que generar un informe o si simplemente tiene curiosidad por cómo va su proyecto.