问题描述
有一次启动一个项目,报错说存在重复的property XXX_XXXX配置。这种情况在大项目里面有时候会碰到的,就是两个开发者之间使用了同一个名称的属性,因为Properties文件没有java的命名空间规范,所以,这种问题很难避免,那么作为一个做版本的人,怎么怎么快速查找被重复使用的属性名称呢?
问题解决
可以使用find,xargs和grep命令组合:
首先使用find命令找到项目下的所有属性文件:
find [项目配置文件的路径] -name "*.properties" -type f
然后xargs命令接收这些找到的文件,把他们以参数的形式传给grep
grep则查找文件内容,使用-n参数能够打印所在行,那么,拼在一起:
find [项目配置文件的路径] -name "*.properties" -type f -print0 | xargs -0 grep -n [属性名]
得到的结果类似于
[文件名]:[行号]:[属性所在行]