统计代码行数工具总结

81 阅读5分钟

统计代码行数工具总结

概述

统计项目代码行数(Lines of Code,简称 LOC 或 SLOC)是软件开发中常见的需求,可用于评估项目规模、开发进度、代码质量、团队产出等。本文介绍常用工具与方法,涵盖命令行工具(跨平台/语言无关)、语言专用工具、IDE 集成、以及在线/图形化工具,帮助你全面、灵活地统计代码行数情况。


一、通用命令行工具(适用于任何文本/代码文件)

1. wc -l(Linux/macOS,最基础)

功能:统计文件的行数,常用于粗略统计代码行数。

命令示例

# 统计当前目录下所有 .java 文件的行数
find . -name "*.java" | xargs wc -l

# 统计所有代码文件(自定义扩展名)
find . -type f \( -name "*.java" -o -name "*.py" -o -name "*.cpp" -o -name "*.c" -o -name "*.h" \) | xargs wc -l

优点:无需安装,速度快,适用于所有文本文件。

缺点:不区分代码/注释/空行;只能简单统计行数,不提供详细分类(如文件数、目录、语言等)。


2. cloc(推荐,最强大、最智能)

全称:Count Lines of Code

功能:专门用于统计项目代码行数,能区分代码、注释、空白行,支持几乎所有主流编程语言,还能按语言、目录、文件等分类统计

官网github.com/AlDanial/cl…

安装方式

  • macOS: brew install cloc
  • Linux (Debian/Ubuntu): sudo apt install cloc
  • Windows: 可通过 chocolatey (choco install cloc) 或直接下载 Perl/Python 版本运行
  • 或直接下载源码运行(支持 Perl/Python 实现)

使用示例

# 统计当前目录及子目录所有代码
cloc .

# 统计指定目录
cloc /path/to/your/project

# 统计特定文件类型
cloc --include-lang=Java,Python,Kotlin .

# 输出为 JSON / XML(适合集成到 CI/CD)
cloc --json .
cloc --xml .

输出示例

language     files          blank        comment           code
-------------------------------------------------------------------------------
Java            45           1200           3000          15000
Python          12            300            500           4000
Markdown         5             50              5            300
-------------------------------------------------------------------------------
SUM:            62           1550           3505          19300

优点

  • 智能识别代码/注释/空行
  • 支持 400+ 编程语言
  • 可输出多种格式(text/json/xml/csv)
  • 支持按目录、语言过滤
  • 适合项目报告、CI 集成、团队统计

缺点:需要安装,但非常轻量且跨平台

推荐指数:⭐⭐⭐⭐⭐(最推荐)


二、IDE 内置工具(适合开发阶段快速查看)

1. IntelliJ IDEA / Android Studio

功能:内置代码统计,可查看当前文件/项目/模块的代码行数、代码复杂度、注释等。

操作路径

  • 右键项目/目录 → Show in Explorer 或使用菜单:
  • View → Tool Windows → Project,右键目录 → Calculate Code Metrics 或类似选项(不同版本可能略有差异)
  • 或安装插件如 "Statistic"(强烈推荐)

插件推荐:Statistic

  • 提供详细的代码统计:文件数、代码行、注释行、空行、各类语言分布等
  • 支持图表展示
  • 安装:File → Settings → Plugins → 搜索 "Statistic",安装后重启 IDE

2. Eclipse

  • 可通过插件如 MetricsCodePro AnalytiX(旧版)实现代码统计
  • 或使用内置的搜索功能配合正则表达式手动统计(较原始)

3. VS Code

本身不直接提供详细代码行数统计,但可通过插件实现:

插件推荐

  • CodeMetrics:统计当前文件/项目代码行、注释等
  • Project Manager + 搜索功能 配合筛选
  • WakaTime(偏向开发行为统计,含代码量)

三、其他工具与平台

1. GitHub / GitLab / Bitbucket

内置 Insights / Repository Statistics

  • GitHub:仓库首页有时会显示 "代码行数"概览(主要统计 commit 中的增减,非精准 SLOC)
  • GitHub Advanced Security / 第三方 Action(如 tokeicloc-action)可生成更细致报告

第三方 GitHub Action 示例

  • 使用 cloc-action 在 CI 中统计并输出代码行数报告

2. Tokei(Rust 编写,速度快,支持多语言)

官网 / GitHub: github.com/XAMPPRocky/…

特点:比 cloc 更快(Rust 实现),支持几乎所有语言,输出简洁,适合脚本与自动化

安装

  • macOS: brew install tokei
  • Linux: 可通过 cargo 安装:cargo install tokei
  • Windows: cargo 或下载 release binary

使用

tokei .
tokei --output json .

优点:速度快,支持多语言,输出格式灵活

缺点:对某些小众语言支持可能略逊于 cloc

推荐指数:⭐⭐⭐⭐(速度快,适合自动化)


四、统计维度举例(好的工具应该提供)

一个优秀的代码行数统计工具,通常会提供以下信息:

维度说明
总行数所有代码行的总和
代码行(Code)实际的程序语句(不含注释和空行)
注释行(Comment)单行/多行注释
空行(Blank)仅含空格/制表符/换行的行
文件数项目中有多少源代码文件
目录/包/模块统计按目录、语言、模块分组统计
语言分布各种编程语言的代码量占比
历史趋势(结合 Git)通过 git log 分析代码增量(需额外工具)

五、总结推荐

工具适用场景特点推荐指数
cloc通用、跨平台、支持几乎所有语言、可输出多种格式智能识别代码/注释/空行,分类清晰,适合报告与分析⭐⭐⭐⭐⭐
tokei需要更快的统计、Rust 实现、支持多语言速度快,输出简洁,适合脚本和 CI⭐⭐⭐⭐
IDE 插件(如 Statistic、Metrics)开发阶段快速查看图形化友好,集成在 IDE 中⭐⭐⭐⭐
wc -l极简统计需求,快速粗略计数无需安装,但功能极其基础⭐⭐
GitHub Actions / cloc-actionCI/CD 中自动统计适合自动化报表和项目管理⭐⭐⭐⭐

✅ 总结一句话

如果你需要一个功能全面、智能、支持多语言、可生成详细报告的代码行数统计工具,推荐使用 cloc;如果追求速度和轻量,可以选择 tokei;在 IDE 中开发时,可以安装 Statistic 等插件实时查看。

你可以根据你的操作系统、项目语言、是否需要图形化/自动化/集成等需求,选择最适合你的工具。如果需要,我可以帮你写出一条命令,直接统计你当前项目的代码行分布 😊。