针对设计篇描述的大致思路,现在针对各个问题点,给出实现方法
该脚本大致使用的工具如下:vi、grep、sed、find、awk、cut、sort、uniq、cat、md5等。
针对要加密的内容,分别给出关键字提取脚本命令。
脚本中$ROOTFOLDER代表工程根目录,$EXCLUDE_DIR 代表要排除的目录,举例如下:
ROOTFOLDER="demoProject"
EXCLUDE_DIR="--exclude-dir=*.framework --exclude-dir=include --exclude-dir=libraries --exclude-dir=Libs --exclude-dir=lib"
关键字提取
1.文件名
第一步先将包含路径的文件名写入文件
find $ROOTFOLDER -type f | sed "/\/\./d" >f.list
第二步文件中提取文件名
cat f_rep.list | awk -F/ '{print $NF;}'| awk -F. '{print $1;}' | sed "/^$/d" | sort | uniq
但从文件名提取的功能上,上面两个步骤完全可以合并为一步,但是在实际功能实现中还是要求将上面分为两步的
2.类名
grep -h -r -I "^@interface" $ROOTFOLDER $EXCLUDE_DIR --include '*.[mh]' | sed "s/[:(]/ /" |awk '{split($0,s," ");print s[2];}'|sort|uniq
其中sort,排序;uniq 去除重复的
3.协议名
grep -h -r -I "^@protocol" $ROOTFOLDER $EXCLUDE_DIR --include '*.[mh]