在 bash 中,给定一个路径,例如:
mypath='my/path/to/version/5e/is/7/here'
Run Code Online (Sandbox Code Playgroud)
我想提取包含数字的第一部分。例如,我想提取:5e
有没有比使用 while 循环遍历各个部分并检查每个部分的数字更好的方法?
while IFS=/ read part
do
if [[ $part =~ *[0-9]* ]]; then
echo "$part"
fi
done <<< "$mypath"
Run Code Online (Sandbox Code Playgroud)
使用 Bash 的正则表达式:
[[ "$mypath" =~ [^/]*[0-9]+[^/]* ]] && echo "${BASH_REMATCH[0]}"
5e
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |