ウェブサイト検索

cloc - 多くのプログラミング言語のコード行を数える


さまざまなプロジェクトに取り組んでいると、進捗状況のレポートや統計を提供したり、単にコードの値を計算したりすることが求められる場合があります。

cloc – コード行数をカウント 」というシンプルかつ強力なツールがあり、コードのすべての行数をカウントし、同時にコメントと空白行を除外できます。

すべての主要な Linux ディストリビューションで利用でき、複数のプログラミング言語とファイル拡張子をサポートしており、使用するための特定の要件はありません。

このチュートリアルでは、Linux システムにcloc をインストールして使用する方法を学びます。

Linux システムに Cloc をインストールして使用する方法

cloc のインストールは簡単です。以下に、関連するパッケージ マネージャーを使用して、さまざまなオペレーティング システムに cloc をインストールする方法を示します。

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 を使用すると、特定のファイルまたはディレクトリ内の複数のファイルの行数をカウントできます。 cloc を使用するには、単に「cloc」と入力し、その後に調べたいファイルまたはディレクトリを入力します。

以下は bash 内のファイルの例です。問題のファイルには、bash 形式で次のコードが含まれています。

cat bash_script.sh

次に、それに対して cloc を実行してみましょう。

cloc bash_script.sh

ご覧のとおり、ファイル、空白行、コメント、コード行の数がカウントされています。

cloc のもう 1 つの優れた機能は、圧縮ファイルにも使用できることです。たとえば、最新の WordPress アーカイブをダウンロードし、 それに対してcloc を実行しました。

cloc latest.tar.gz

結果は次のとおりです。

さまざまなタイプのコードを認識し、言語ごとに統計を分離していることがわかります。

ディレクトリ内の複数のファイルのレポートを取得する必要がある場合は、「--by-file 」 オプションを使用できます。これにより、各ファイルの行がカウントされ、それらのレポートが提供されます。多くのファイルと数千行のコードを含むプロジェクトの場合、これには時間がかかる場合があります。

構文は次のとおりです。

cloc --by-file <directory>

cloc のヘルプは読みやすく、理解しやすいものですが、cloc で使用できる追加オプションのうち、一部のユーザーにとって役立つと思われるオプションをいくつか紹介します。

  • --diff set1set2 のソース ファイル間のコードの差分を計算します。入力にはファイルとディレクトリを混在させることができます。
  • --git – 入力が最初にファイル名またはディレクトリ名として識別されていない場合、入力を git ターゲットとして強制的に認識させます。
  • --ignore-whitespace – ファイルを --diff と比較するときに水平方向の空白を無視します。
  • --max-file-size= – 指定した MB を超えるファイルをスキップする場合。
  • --exclude-dir=, – 指定されたカンマ区切りのディレクトリを除外します。
  • --exclude-ext=, – 指定されたファイル拡張子を除外します。
  • --csv – 結果を CSV ファイル形式にエクスポートします。
  • --csv-delimiter= – 文字 を区切り文字として使用します。
  • --out= – 結果を <file> に保存します。
  • --quiet – すべての情報メッセージを抑制し、最終レポートのみを表示します。
  • --sql= – SQLite などのデータベース プログラムで読み取ることができる create および insert ステートメントとして結果を書き込みます。
結論

Cloc はちょっとした便利なユーティリティで、必ず持っておくと良いでしょう。日常的には使用されないかもしれませんが、レポートを作成する必要がある場合や、プロジェクトの進捗状況に興味がある場合に役立ちます。