perl脚本统计文件夹下源代码信息

源起:

最近突然分配到整理代码中各个功能全局变量的使用情况的任务,虽然简单,但是找了几个之后,发现十分费时,本着能不自己做就不自己做的原则,决定弄个脚本来完成这个任务!

说干就干,看看公司里电脑的环境,也就是perl比较合适,主要是对java做执行程序有点阴影。接下来就在网上搜索一下perl实现类似功能的脚本,毕竟自己还没有写过perl的脚本,

先复制粘贴下来,运行运行看看结果。

过程:

最初的时候,想要写一个脚本把文件夹下所有C文件都扫描一遍,找出定义和调用了变量的文件,再根据文件属于哪个功能,完成变量与功能的匹配。扫描的脚本直接拿来就好用,接下来

扫描每个文件查看是否包含变量,那么首先要把变量名数组建立起来,这个数组基本就是复制粘贴,再用宏处理一下很快搞定,输出结果也符合预期;轮到建立功能名与文件名的时候,

发现要复杂很多,而且需要多维数组(因为我每想到其他办法)。

由于被打断了一下,我不得不回家重新做起,在ajanuw的代码启发下,我突然发现比数组更好的方式--文件,用简单换行,逗号,冒号,可以轻松编辑变量名文件,功能名与文件名配对文件,作为脚本的输入。此外,脚本分成三段,完成独立的工作,下一个脚本使用上一个的输出,调试十分放比昂。豁然开朗之下,脚本很快就完成了。

因为这三个脚本挺简单的,有兴趣的同学可以下载下来看看,里面同时还有我建立的用于测试的源代码文件(实际是一些伪代码),使用bash把三个脚本串联起来调用,在MAC上可以运行。

代码连接为https://github.com/sahlite/variables-functions

总结:

  1. 脚本使用print输出最终结果,调试时直接输出到屏幕上便于检查,最终使用时输出到文件中,便于自动化使用
  2. 使用文件作为传入参数,过程可以做到很灵活,也方便查找过程中的输出结果
  3. 脚本还是尽量做的功能简单,然后使用批处理等手段自动化运行,比做一个大的完整脚本要简单很多

参考:

https://www.cnblogs.com/ajanuw/p/9275659.html  编码风格十分舒服,介绍简洁而完善,扫描文件就是复制这位大神的代码!

https://www.runoob.com/perl/perl-regular-expressions.html 正则表达式的基本介绍,对于我的需求完全足够了。

猜你喜欢

转载自www.cnblogs.com/jules-hu/p/11954073.html