如何找出Xcode项目中有多less行代码?
有没有办法确定Xcode项目包含多less行代码? 我保证不会将这些信息用于pipe理评估或员工基准testing。 ;)
检查CLOC 。
cloc计算许多编程语言中的空白行,注释行和源代码的物理行。
( 遗留版本在SourceForge上存档 。)
我看到这个浮动,并使用它自己:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
我一直在使用CLOC,正如Nathan Kinsinger
所说的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 -------------------------------------------------------------------------------
在terminal中,切换到项目目录并运行:
find . -type f -print0 | xargs -0 cat | wc -l
如果您只想要某些文件types,请尝试类似
find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
看看Xcode Statistician,它确实是你想要的。 它还提供了其他有趣的统计数据,所以值得一试。
请注意,它不会看真正的文件夹,但它会看在一组。 赔率是你没有使用真正的文件夹,所以它会工作得很好。 如果您正在使用文件夹,那么您只需在每个文件夹中进行计数并将其添加在一起即可。
注意:截至2012年6月份,Xcode的最新版本似乎无法正常工作。
打开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 '{}' \+
terminal快速提示:
ls:列出目录内容
cd:改变目录
按选项卡自动完成
请记住在空格前加“\”反斜杠
我build议从主项目中去掉一个文件夹,这样就可以摆脱框架中的代码数量
如果您在terminal中转到项目目录并input:
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
这会给你一个项目的分解,以及每个文件和整个项目的总数。
- 开放的terminal
- 导航到您的项目
-
在你的项目中执行下面的命令:
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文件计数)
Nozzi的版本不适合我,但是这个:
find . -type f -print0 | xargs -0 cat | wc -l
您可以通过MacPorts安装SLOCCount 。 或者更粗暴地说,你可以使用wc -l。
快速简便的方法:
使用正则expression式search(查找导航器,select查找>正则expression式)。
。\ n
使用Xcodesearch范围可以方便地使用,您可以轻松地将其自定义为您想要计算的任何types的行;)。
我对xcode不熟悉,但是如果您只需要计算目录树中所有这些特定文件的行数,则可以使用以下命令:
find .... match of all those files ... -exec wc -l {} +
按照Joshua Nozzi的回答 ,这样的文件的正则expression式就像:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +
甚至
find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +
这使用正则expression式匹配以.m
, .mm
, .cpp
或.swift
结尾的所有文件。 您可以在文件查找中使用正则expression式中看到更多关于这些expression式的信息。
这将提供一个输出的forms
234 ./file1 456 ./file2 690 total
所以,你可以保持这样或者只是pipe道tail -1
(也就是说, find ... | tail -1
),所以你只是得到最后一行是总数。
对不起,重复。 这是最简单的方法恕我直言:
- 在terminaltypes
find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;
这会将项目文件夹中的所有文件复制到newFolder
。
- 下载Xcode统计学家并将其与
newFolder
line-counter
是一个很好的select。 它比CLOC轻,比其他命令更强大,更易于使用。
快速浏览
这是你如何得到工具
$ pip install line-counter
使用line
命令获取当前目录下的文件数量和行数(recursion)
$ 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 Cc 72 Dir A/file D.py 268 file A.py 467 file Bc 32 file count: 4 line count: 839
而这个工具的最好的部分是,你可以添加像configuration文件的.gitignore它。 您可以设置规则来select或忽略什么types的文件来计数,就像在“.gitignore”中所做的一样。 是的,这个工具只是为了让我知道我有多less线条更容易。
更多的描述和用法在这里: https : //github.com/MorganZhang100/line-counter
我是这个简单工具的作者。 希望它能帮助别人。
任何明星或叉子赞赏:P