使用cloc统计代码行数

cloc(Count Lines of Code)是一款很棒的开源命令行工具,它能帮你详细统计项目中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code) 。它会自动识别多种编程语言,并且支持在多平台上使用。

项目地址:github.com/AlDanial/cl...

下面我为你介绍一下它的安装和常用方法。

🧑‍💻 安装 cloc

cloc 的安装方法很多,你可以根据自己常用的操作系统选择命令

操作系统/包管理器 安装命令
npm npm install -g cloc
Debian, Ubuntu sudo apt install cloc
Red Hat, Fedora sudo yum install cloc
Fedora 22 or later sudo dnf install cloc
Arch sudo pacman -S cloc
Gentoo sudo emerge -av dev-util/cloc
Alpine Linux sudo apk add cloc
OpenBSD doas pkg_add cloc
FreeBSD sudo pkg install cloc
macOS with MacPorts sudo port install cloc
macOS with Homebrew brew install cloc
Windows with Chocolatey choco install cloc
Windows with Scoop scoop install cloc

📊 基本使用命令

安装好后,在终端或命令行中就可以使用 cloc 命令了。

  • 统计当前目录下的代码情况:在项目根目录下执行:

    bash

    erlang 复制代码
    cloc .

    这会对当前目录(包括子目录)中的所有源代码进行统计。

  • 统计指定目录或文件 :只需将 . 替换为你的目录路径或文件路径即可:

    bash

    bash 复制代码
    cloc /path/to/your/project
    cloc /path/to/your/file.py

🎯 常用选项和场景

cloc 提供了一些非常实用的选项来满足不同需求:

  • 排除特定目录 :这在项目有很多依赖(如 node_modules, vendor, Pods 等)时非常有用,可以避免统计这些目录下的代码

    bash

    ini 复制代码
    cloc . --exclude-dir=node_modules,Pods,venv
  • 排除特定语言 :如果你不希望统计某些特定语言的文件(比如只想看后端代码,排除前端代码),可以使用

    bash

    css 复制代码
    cloc . --exclude-lang=CSS,HTML,Markdown
  • 仅统计特定语言 :与排除语言相反,你可以只关注某几种语言

    bash

    ini 复制代码
    cloc . --include-lang=Python,Java,JavaScript
    # 或者通过扩展名
    cloc . --include-ext=.py,.java,.js
  • 按文件查看统计结果 :此选项会列出每个文件的详细统计信息,方便你查看具体哪个文件代码量最多

    bash

    csharp 复制代码
    cloc . --by-file
  • 将统计结果输出到文件 :cloc 支持将统计结果输出为多种格式,便于保存或后续分析,如纯文本、CSV、JSON、XML、YAML 等

    bash

    ini 复制代码
    cloc . --out=result.txt  # 输出为文本文件
    cloc . --csv --out=result.csv  # 输出为CSV文件
    cloc . --json --out=result.json  # 输出为JSON文件

💡 理解统计结果

执行 cloc 命令后,你会看到一个清晰的表格格式输出,例如

text

markdown 复制代码
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          48            651           1211           5045
JavaScript                     10            188            121            875
CSS                             3             18             25            125
-------------------------------------------------------------------------------
SUM:                            61            857           1357           6045

在这个结果中:

  • files: 对应语言的文件数量。
  • blank: 空白行的数量。
  • comment: 注释行的数量。
  • code : 有效代码行数 ,这也是你通常最关心的数字。
    表格最后会有一个所有语言的汇总(SUM)。

🚨 注意特殊情况

  • cloc 对于压缩包 (如 .tar.gz, .zip)也可以直接统计

    bash

    复制代码
    cloc perl-5.22.0.tar.gz
  • 使用 --exclude-dir 时,目录名称要准确,且如果需要排除多个目录,用逗号分隔

  • cloc 的统计结果是基于它内置的语言定义 。在极少数情况下,如果某些非常冷门的文件格式未被正确识别,你可能需要通过 --read-lang-def 选项来自定义语言定义

  • 通常认为 code 列就是有效代码行数,它已经排除了空白行和注释行。

相关推荐
x***13391 小时前
【MyBatisPlus】MyBatisPlus介绍与使用
android·前端·后端
f***68602 小时前
【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)
java·spring boot·后端
z***75153 小时前
【Springboot3+vue3】从零到一搭建Springboot3+vue3前后端分离项目之后端环境搭建
android·前端·后端
w***95495 小时前
SQL美化器:sql-beautify安装与配置完全指南
android·前端·后端
橙子家6 小时前
Serilog 日志库简单实践(三)集中式日志与分析平台 Sinks(.net8)
后端
r***12386 小时前
Spring boot启动原理及相关组件
数据库·spring boot·后端
m***11906 小时前
【SpringBoot】Spring Boot 项目的打包配置
java·spring boot·后端
李慕婉学姐7 小时前
Springboot剪纸数字博物馆系统6wd19a3a(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·spring boot·后端
追逐时光者7 小时前
精选 5 款 .NET 开源、实用的商城系统(Shop),快速商城二开利器!
后端·.net