有没有办法确定Xcode项目包含多少行代码?我保证不会将此类信息用于管理测量或员工基准测试目的。 ;)
答案 0 :(得分:218)
我看到这个浮动并自己使用它:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
答案 1 :(得分:117)
答案 2 :(得分:73)
我一直使用CLOC作为mentioned by Nathan Kinsinger
并且使用相当容易。它是一个PERL脚本,您可以从项目目录中添加和运行。
PERL已经是Mac OS的一部分,您可以通过这种方式调用脚本来找出您编写的行数:
perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre
这是我从这样的命令获得的输出的一个例子:
176 text files.
176 unique files.
4 files ignored.
http://cloc.sourceforge.net v 1.56 T=2.0 s (86.0 files/s, 10838.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Objective C 80 3848 1876 11844
C/C++ Header 92 980 1716 1412
-------------------------------------------------------------------------------
SUM: 172 4828 3592 13256
-------------------------------------------------------------------------------
答案 3 :(得分:43)
在终端中,切换到项目目录并运行:
find . -type f -print0 | xargs -0 cat | wc -l
如果您只想要某些文件类型,请尝试类似
的内容find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
答案 4 :(得分:42)
打开Terminal.app,进入项目的根目录,然后运行以下命令:
仅适用于Swift:
find . \( -iname \*.swift \) -exec wc -l '{}' \+
仅适用于Obj-C:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
对于Obj-C + Swift:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
对于Obj-C + Swift + C + C ++:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h -o -iname \*.hh -o -iname \*.hpp -o -iname \*.cpp -o -iname \*.swift \) -exec wc -l '{}' \+
终端快速提示:
ls:列出目录内容
cd:更改目录
按Tab键自动完成
记得把" \"空格前的反斜杠
我建议从主项目中删除一个文件夹,以便从框架中删除代码计数
答案 5 :(得分:34)
查看Xcode Statistician,它完全符合您的要求。它还提供了其他有趣的统计数据,因此值得一试好玩。
请注意,它不会查看真实文件夹,但它会以组的形式显示。可能的情况是你没有使用真正的文件夹,所以它会很好用。如果您正在使用文件夹,那么您只需在每个文件夹中进行计数并将它们一起添加。
注意:截至2012年6月,似乎无法使用最新版本的Xcode。
答案 6 :(得分:24)
在项目中执行以下命令:
find . -path ./Pods -prune -o -name "*.swift" -print0 ! -name "/Pods" | xargs -0 wc -l
或者:
find . -path ./Pods -prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
(*从总数中排除pod文件数)
答案 7 :(得分:15)
如果您转到终端中项目的目录并输入:
find . "(" -name "*.h" -or -name "*.m" -or -name "*.mm" -or -name "*.hpp" -or -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
这将为您提供项目细分,以及每个文件和整个项目的总计。
答案 8 :(得分:9)
Nozzi的版本对我不起作用,但是这个版本:
find . -type f -print0 | xargs -0 cat | wc -l
答案 9 :(得分:6)
您可以通过MacPorts安装SLOCCount。或者,更粗略地说,你可以使用wc -l。
答案 10 :(得分:5)
快速&简单方法:
使用正则表达式搜索(查找导航器,选择查找>正则表达式)。
。\ n
使用Xcode搜索范围可以方便地工作,您可以轻松地将其自定义为您想要计算的任何类型的行;)。
答案 11 :(得分:3)
在Mac中实现CLOC库的步骤如下:
打开终端
使用以下命令安装自制软件,
红宝石-e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
复制并粘贴此命令,包括终端中的双引号
输入系统密码,然后单击Enter。
系统将弹出许多权限,请允许所有权限
使用cd drag & drop project folder path to terminal
现在该使用以下命令安装 CLOC 了。
loc。 --exclude-dir = Pods 用于排除Pod文件
位置。,包括Pod文件
希望它将对某人有所帮助。
答案 12 :(得分:2)
我不熟悉xcode,但如果您只需要计算目录树中所有这些特定文件的行数,则可以使用以下命令:
find .... match of all those files ... -exec wc -l {} +
关注Joshua Nozzi's answer,在 GNU find 中,此类文件的正则表达式如下:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +
甚至
find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +
这使用正则表达式来匹配以.m
,.mm
,.cpp
或.swift
结尾的所有文件。您可以在How to use regex in file find中查看有关这些表达式的更多信息。
如果您正在使用 Mac OS查找,那么您需要采用略有不同的方法,如Motti Shneor在评论中所述:
find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +
两者都将提供以下形式的输出:
234 ./file1
456 ./file2
690 total
所以你可以保持这样或只是管道tail -1
(即find ... | tail -1
),这样你就可以得到最后一行作为总数。
答案 13 :(得分:1)
抱歉重复一遍。这是恕我直言最容易的方式:
identityDocument
这会将项目文件夹中的所有文件复制到find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;
。
newFolder
一起使用
答案 14 :(得分:1)
line-counter
是一个不错的选择。它比CLOC更轻,比其他命令更强大,更易于使用。
快速概述
这是你获得工具的方式
$ pip install line-counter
使用line
命令获取当前目录下的文件计数和行数(递归)
$ line
Search in /Users/Morgan/Documents/Example/
file count: 4
line count: 839
如果您想了解更多细节,请使用line -d
。
$ line -d
Search in /Users/Morgan/Documents/Example/
Dir A/file C.c 72
Dir A/file D.py 268
file A.py 467
file B.c 32
file count: 4
line count: 839
这个工具最好的部分是,你可以像配置文件一样添加.gitignore。您可以设置规则来选择或忽略要计算的文件类型,就像您在“.gitignore”中所做的那样。是的,这个工具的发明只是为了让我知道有多少行。
更多说明和用法在此处:https://github.com/MorganZhang100/line-counter
我是这个简单工具的作者。希望它可以帮助某人。
任何明星或分叉都表示赞赏:P