【发布时间】:2020-11-06 23:35:28
【问题描述】:
我正在尝试使用 bash 脚本对不同路径字符串的特定文件夹深度进行正则表达式匹配。
我想匹配从packages 向下的两个级别,例如。 /packages/[any-folder-name]/[any-folder-name]/.
例如对于/packages/frontend/react-app/src/index.ts,我想匹配/packages/frontend/react-app/并将其存储在一个数组中
array=()
string="/packages/frontend/react-app/src/index.ts"
[[ $string =~ packages/.*/.*/ ]] && array+=(${BASH_REMATCH[0]}
几乎可以工作,但它返回/packages/frontend/react-app/src/
我已经为此转了几个小时了。
任何帮助表示赞赏!
【问题讨论】:
-
听起来您可能会从
find中获得一些好处。类似find /packages -maxdepth 2 -type d -
@xdhmoore 不幸的是,
find无法匹配字符串并捕获字符串的一部分。这不是查找目录,而是提取字符串中包含的路径的特定部分。