Dav*_*her 141 xcode code-metrics
有没有办法确定Xcode项目包含多少行代码?我保证不会将此类信息用于管理测量或员工基准测试目的.;)
Jos*_*zzi 224
我看到它漂浮在周围并自己使用它:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
Run Code Online (Sandbox Code Playgroud)
tig*_*ero 74
我一直在使用CLOC作为被提到的Nathan Kinsinger
,这是相当容易使用.它是一个PERL脚本,您可以从项目目录中添加和运行它.
PERL已经是Mac OS的一部分,您可以通过这种方式调用脚本来查找您编写的行数:
perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre
Run Code Online (Sandbox Code Playgroud)
这是我从这样的命令得到的输出的一个例子:
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
-------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
And*_*gor 44
在终端中,切换到项目目录并运行:
find . -type f -print0 | xargs -0 cat | wc -l
Run Code Online (Sandbox Code Playgroud)
如果您只想要某些文件类型,请尝试类似的方法
find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
Run Code Online (Sandbox Code Playgroud)
Esq*_*uth 44
打开Terminal.app,进入项目的根目录,然后运行以下命令:
仅适用于Swift:
find . \( -iname \*.swift \) -exec wc -l '{}' \+
Run Code Online (Sandbox Code Playgroud)
仅限Obj-C:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
Run Code Online (Sandbox Code Playgroud)
对于Obj-C + Swift:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
Run Code Online (Sandbox Code Playgroud)
对于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 '{}' \+
Run Code Online (Sandbox Code Playgroud)
终端快速提示:
LS:列出目录内容
cd:改变目录
按Tab键自动
记得把"\"之前空间反斜线
我建议去一个文件夹下从主要项目,所以你从框架摆脱码数
Mat*_*ick 34
查看Xcode Statistician,它完全符合您的要求.它还提供了其他有趣的统计数据,因此值得一试.
请注意,它不会查看真实文件夹,但它会以组的形式显示.可能的情况是你没有使用真正的文件夹,所以它会很好用.如果您正在使用文件夹,那么您只需在每个文件夹中进行计数并将它们一起添加.
注意:截至2012年6月,似乎这与最新版本的Xcode无法正常工作.
小智 28
在项目中执行以下命令:
find . -path ./Pods -prune -o -name "*.swift" -print0 ! -name "/Pods" | xargs -0 wc -l
Run Code Online (Sandbox Code Playgroud)
要么:
find . -path ./Pods -prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
Run Code Online (Sandbox Code Playgroud)(*从总数中排除pod文件数)
Ril*_*eyE 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
Run Code Online (Sandbox Code Playgroud)
这将为您提供项目细分,以及每个文件和整个项目的总计.
Nozzi的版本对我不起作用,但这一个:
find . -type f -print0 | xargs -0 cat | wc -l
Run Code Online (Sandbox Code Playgroud)
快速简便的方法:
使用正则表达式搜索(查找导航器,选择"查找">"正则表达式").
.\n
使用Xcode搜索范围可以方便地工作,您可以轻松地将其自定义为您想要计算的任何类型的行;).
我不熟悉 xcode,但如果您只需要计算目录树中所有这些特定文件的行数,您可以使用以下命令:
find .... match of all those files ... -exec wc -l {} +
Run Code Online (Sandbox Code Playgroud)
按照Joshua Nozzi 的回答,在GNU 中找到此类文件的正则表达式如下:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +
Run Code Online (Sandbox Code Playgroud)
甚至
find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +
Run Code Online (Sandbox Code Playgroud)
这种使用正则表达式来匹配任何结尾的文件.m
,.mm
,.cpp
或者.swift
。您可以在How to use regex in file find 中查看有关这些表达式的更多信息。
如果您使用的是Mac OS find,那么您需要一种稍微不同的方法,正如Motti Shneor在评论中所解释的那样:
find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +
Run Code Online (Sandbox Code Playgroud)
两者都将提供以下形式的输出:
234 ./file1
456 ./file2
690 total
Run Code Online (Sandbox Code Playgroud)
因此,您可以保持这样,也可以直接通过管道传输到tail -1
(即 ),find ... | tail -1
这样您就可以将最后一行作为总数。
在 Mac 中实现 CLOC 库的步骤如下:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果询问,请输入系统密码。
您将看到如下所示的终端屏幕。
系统会弹出这么多权限,允许所有权限
如果一切顺利,您将看到如下终端屏幕,
brew install cloc
cloc . --exclude-dir=Pods
(排除 pod 文件)
cloc .
(包括 pod 文件)
如果一切顺利,它将显示如下代码行数,
归档时间: |
|
查看次数: |
82422 次 |
最近记录: |