苹果app代码行数统计

简介: 苹果app代码行数统计

本案例以object c开发的app为例,若统计统计其它语言开发的app,只需要修改参数列表"*[.h|.m|.mm|.cpp|.c|.plist|.html|.htm]"。

申请软件著作权时,需要提供代码的前1000行的代码和后1000行的代码,代码行数等信息。

如:

硬件环境:iphone4及以上手机

软件环境:iOS 8及以上版本

编程语言:Object C

源程序两:207579行

java服务器开发有插件可以直接统计代码量。而苹果我没有对应的插件。苹果本来就时从UNIX和LINUX演变来的,linux的shell命令,在苹果的命令行下都基本适用。所以写出对应的shell命令就能统计出来。注意:因为中英文输入法等问题,可能出现拷贝的语句无法正确执行,可以手动输入就可以了。

统计当前目录及其子目录下忽略空行的代码量语句如下:

find . -name "*.h" | xargs cat|grep -v ^$|wc -l
find . -name "*.m" | xargs cat|grep -v ^$|wc -l
find . -name "*.c" | xargs cat|grep -v ^$|wc -l
find . -name "*.cpp" | xargs cat|grep -v ^$|wc -l
find . -name "*.mm" | xargs cat|grep -v ^$|wc -l
find . -name "*.html" | xargs cat|grep -v ^$|wc -l
find . -name "*.htm" | xargs cat|grep -v ^$|wc -l

注意:新版的M1芯片的苹果电脑上面的单行命令查询支持,下面的查询不支持:

pple@AppledeMacBook-Pro SameCity % find . -name "*.h" | xargs cat|grep -v ^$|wc -l
     681
apple@AppledeMacBook-Pro SameCity % find . -name "*.m" | xargs cat|grep -v ^$|wc -l
    6939
apple@AppledeMacBook-Pro SameCity % find . -name "*[.h|.m|.mm]"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l
zsh: no matches found: ^s*//.*$
       0
cat: .: Is a directory
xargs: cat: terminated with signal 13; aborting
apple@AppledeMacBook-Pro SameCity % find . -name "*[.h|.m|.mm|.cpp|.c|.html|.htm]"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l
zsh: no matches found: ^s*//.*$
       0
cat: .: Is a directory
cat: ./SameCity/ViewModel: Is a directory
xargs: cat: terminated with signal 13; aborting
apple@AppledeMacBook-Pro SameCity % 

统计忽略空行,忽略以“//”开头的行注释(不能忽略以“/”开始或“\”结束的代码块注释),统计object c开发常用的文件代码行数。只需要下面一行命令就能实现代码行数统计:

find . -name "*[.h|.m|.mm|.cpp|.c|.html|.htm]"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l

语句执行效果截图(由于显示的内容太多,只显示语句查询结果的前部分信息和后部分呢信息,中间的信息就不截图了):

若参数太多可以分成4句来统计:

jgs:PinkPig的副本3 mac$ find . -name "*[.h|.m|.mm|.cpp|.c|.html|.htm]"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l
xargs: cat: Argument list too long
       0
find . -name "*.htm" | xargs cat|grep -v ^$|wc -l
find . -name "*[.c|.cpp]"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l
find . -name "*.html" | xargs cat|grep -v ^$|wc -l
find . -name "*.htm" | xargs cat|grep -v ^$|wc -l

由于第三方库中包含大量.cpp代码,而苹果开发常用的文件后缀有三种:.h,.m,.mm。所以精简并常用的代码行数统计命令是:

find . -name "*[.h|.m|.mm]"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l

执行的效果如下:

jiaguoshangdeMacBook-Air:ArtEnjoymentWeChatAuction jiaguoshang$ find . -name "*[.h|.m|.mm]"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l
cat: .: Is a directory
cat: ./Pods/Target: No such file or directory
cat: Support: No such file or directory
cat: Files/YXFDCategories/YXFDCategories-prefix.pch: No such file or directory
cat: ./Pods/Target: No such file or directory
cat: Support: No such file or directory
cat: Files/YXFDCategories/YXFDCategories-dummy.m: No such file or directory
cat: ./Pods/Target: No such file or directory
.
.
.
cat: ./Pods/Target: No such file or directory
cat: Support: No such file or directory
cat: Files/SDWebImage/SDWebImage-dummy.m: No such file or directory
cat: ./Pods/UMengUShare/UShareSDK/SocialLibraries/Instagram: Is a directory
cat: ./Pods/AliyunOSSiOS/Supporting: No such file or directory
cat: Files/AliyunOSSiOS.h: No such file or directory
  177086
jiaguoshangdeMacBook-Air:ArtEnjoymentWeChatAuction jiaguoshang$

注意需要统计时要用这个目录:

当然你想统计包含自己的私有库,需要在上一层目录执行统计命令,不想统计开源库,只需要把对应的开源库的文件夹和文件删除再统计就可以了。

目录
相关文章
|
4月前
|
IDE 网络安全 开发工具
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
|
29天前
|
JavaScript C++ 容器
【Azure Bot Service】部署NodeJS ChatBot代码到App Service中无法自动启动
2024-11-12T12:22:40.366223350Z Error: Cannot find module 'dotenv' 2024-11-12T12:40:12.538120729Z Error: Cannot find module 'restify' 2024-11-12T12:48:13.348529900Z Error: Cannot find module 'lodash'
40 11
|
2月前
|
机器人 Shell Linux
【Azure Bot Service】部署Python ChatBot代码到App Service中
本文介绍了使用Python编写的ChatBot在部署到Azure App Service时遇到的问题及解决方案。主要问题是应用启动失败,错误信息为“Failed to find attribute 'app' in 'app'”。解决步骤包括:1) 修改`app.py`文件,添加`init_func`函数;2) 配置`config.py`,添加与Azure Bot Service认证相关的配置项;3) 设置App Service的启动命令为`python3 -m aiohttp.web -H 0.0.0.0 -P 8000 app:init_func`。
|
4月前
|
缓存
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
|
4月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
|
4月前
|
网络安全 API 数据安全/隐私保护
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
|
4月前
|
Linux Docker 容器
【Azure 应用服务】使用App Service for Linux/Container时,如果代码或Container启动耗时大于了230秒,默认会启动失败。
【Azure 应用服务】使用App Service for Linux/Container时,如果代码或Container启动耗时大于了230秒,默认会启动失败。
|
4月前
|
开发框架 安全 前端开发
【Azure 应用服务】应用代码需要客户端证书进行验证,部署到App Service后,如何配置让客户端携带证书呢?
【Azure 应用服务】应用代码需要客户端证书进行验证,部署到App Service后,如何配置让客户端携带证书呢?
|
4月前
|
开发框架 JSON .NET
【Azure 应用服务】在Azure App Service多实例的情况下,如何在应用中通过代码获取到实例名(Instance ID)呢?
【Azure 应用服务】在Azure App Service多实例的情况下,如何在应用中通过代码获取到实例名(Instance ID)呢?