闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

Shell中的正则脚本

2021-03-07 约 1 分钟读完 搬砖秘籍
在之前的文章《使用Husky管理项目的Git Hooks(以配置Uni-app的ESLint和Commit Lint为例)》中介绍了使用Husky添加Commit Lint的方法,其实里面有点小插曲。 我想要格式 feature/(big|small|middle): xxxxxx 比如: 清明出行礼包/big: 初始化项目 通常的正则 ^\w+\/(big|small|middle):\s*\S+ 但我这个在Shell中写了之后发现,shell中根本不支持\w这样的元字符(我也没找到原因) Shell的写法 在参考了《Linux命令行与Shell脚本编程大全》中的内容后,修改如下: ^[[:graph:]]+\/(big|small|middle):[[:space:]]*[[:graph:]]+ 原因 在Linux中有2种流行的正则表达式引擎: POSIX基础正则表达式 – BRE POSIX扩展正则表达式 – ERE 大多数Linux工具至少符合BRE规范,那在POSIX引擎中匹配单词之类的就不能用\w这种,要用POSIX专用的。常见的有: 小结 就是一个引擎问题,纠结了2天,结果周末在一本买了很久但没看的书里找到了,果然书中自有颜如玉,啊呸,黄金屋。