需求:想要匹配文件夹A(包括无限递归子目录)下面所有的JS文件,但不包括某个名为node_modules子孙目录下的js文件。目前的做法就是用nodeJS文件夹层层遍历,判断目录文件夹名称。感觉应该用一个linux命令就可以实现,但是没写出来。。请问各路大神该怎么写?
1 回答
GCT1015
TA贡献1827条经验 获得超4个赞
find -name '*.js' -not -path '*/node_modules/*'
匹配多个文件:
find \( -name '*.js' -o -name '*.vue' -o -name '*.jsx' \) -not -path '*/node_modules/*'
当然你也可以用正则表达式匹配这么多种后缀:
find -regextype posix-extended -regex '.*\.(js|vue|jsx)$' -not -path '*/node_modules/*'
find默认的是BRE
正则,由于这个表达式使用了|
选择结构,这个是BRE
不支持的,必须使用ERE
兼容的正则。所以必须指定regextype
为posix扩展正则才能支持这个正则查询
添加回答
举报
0/150
提交
取消