Ricerca nel sito web

cloc - Conta righe di codice in molti linguaggi di programmazione


Mentre lavori su progetti diversi, a volte ti potrebbe essere richiesto di fornire un rapporto o statistiche sui tuoi progressi, o semplicemente di calcolare il valore del tuo codice.

Esiste questo strumento semplice ma potente chiamato "cloc – conta righe di codice" che ti consente di contare tutto il numero del tuo codice ed escludere commenti e righe vuote allo stesso tempo.

È disponibile in tutte le principali distribuzioni Linux e supporta più linguaggi di programmazione ed estensioni di file e non presenta requisiti specifici per essere utilizzato.

In questo tutorial imparerai come installare e utilizzare cloc sul tuo sistema Linux.

Come installare e utilizzare Cloc nei sistemi Linux

Installare cloc è facile e semplice. Di seguito puoi vedere come installare cloc nei diversi sistemi operativi con i relativi gestori di pacchetti:

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 può essere utilizzato per contare le righe in un particolare file o in più file all'interno della directory. Per utilizzare cloc digita semplicemente cloc seguito dal file o dalla directory che desideri esaminare.

Ecco un esempio da un file in bash. Il file in questione contiene il seguente codice in bash:

cat bash_script.sh

Ora eseguiamo cloc su di esso.

cloc bash_script.sh

Come puoi vedere, ha contato il numero di file, righe vuote, commenti e righe di codice.

Un'altra caratteristica interessante di cloc è che può essere utilizzato anche su file compressi. Ad esempio, ho scaricato l'ultimo archivio WordPress e ci ho eseguito cloc.

cloc latest.tar.gz

Ecco il risultato:

Puoi vedere che riconosce i diversi tipi di codice e separa le statistiche per lingua.

Nel caso in cui sia necessario ottenere un report per più file in una directory, è possibile utilizzare l'opzione “--by-file ”, che conterà le righe in ciascun file e fornirà un report per esse. Questa operazione potrebbe richiedere del tempo per progetti con molti file e migliaia di righe di codice.

La sintassi è la seguente:

cloc --by-file <directory>

Sebbene l'aiuto di cloc sia facilmente leggibile e comprensibile, includerò alcune delle opzioni extra che possono essere utilizzate con cloc che alcuni utenti potrebbero trovare utili.

  • --diff – calcola le differenze nel codice tra i file sorgente di set1 e set2. L'input può essere un mix di file e directory.
  • --git – forza il riconoscimento degli input come destinazioni git se gli stessi non vengono prima identificati come nomi di file o directory.
  • --ignore-whitespace – ignora lo spazio bianco orizzontale quando si confrontano file con --diff.
  • --max-file-size= – se desideri saltare i file più grandi della quantità di MB specificata.
  • --exclude-dir=, – esclude determinate directory separate da virgole.
  • --exclude-ext=, – esclude le estensioni di file specificate.
  • --csv: esporta i risultati nel formato file CSV.
  • --csv-delimiter= – utilizza il carattere come delimitatore.
  • --out= – salva i risultati in <file>.
  • --quiet – sopprime tutti i messaggi informativi e mostra solo il rapporto finale.
  • --sql= – scrive i risultati come istruzioni di creazione e inserimento che possono essere lette da un programma di database come SQLite.
Conclusione

Cloc è una piccola utilità utile che è sicuramente utile avere nel tuo arsenale. Anche se potrebbe non essere utilizzato quotidianamente, può aiutarti quando devi generare qualche report o se sei semplicemente curioso di sapere come sta andando il tuo progetto.