如何找出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 

这会给你一个项目的分解,以及每个文件和整个项目的总数。

  1. 开放的terminal
  2. 导航到您的项目
  3. 在你的项目中执行下面的命令:

     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 ),所以你只是得到最后一行是总数。

对不起,重复。 这是最简单的方法恕我直言:

  1. 在terminaltypes

find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;

这会将项目文件夹中的所有文件复制到newFolder

  1. 下载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