regex - 如何从shell脚本中的文件名中提取字符串?
问题描述
我需要从以下文件名格式中获取包含字母字符和 _ 的文本: oracle_NAME_OF_DB_USER.log ,因此 PARAM=NAME_OF_DB_USER。找不到在 for 循环中使用的最佳正则表达式:
LIST=oracle_*.log
for file in $LIST; do
.
.
.
USER=${extracted_file_name}
解决方案
这是一个纯粹的 BASH 答案:
for file in oracle_ABC_USER_1.log oracle_ABC_USER_2.log oracle_ABC_USER_ADMIN_1.log oracle_ABC_USER_ADMIN_2.log oracle_NAME_OF_DB_USER.log; do
[[ $file =~ oracle_(.*)[.]log ]]
echo ${BASH_REMATCH[1]}
done
这是上面命令的输出:
ABC_USER_1
ABC_USER_2
ABC_USER_ADMIN_1
ABC_USER_ADMIN_2
NAME_OF_DB_USER
推荐阅读
- python - 在 Python 中控制 USB 端口的电源
- c++ - 删除两个不同指针指向的对象
- typescript - 使用 React 和 Typescript 的视频播放器
- java - 在新的谷歌浏览器版本(版本 87.0.4280.66(官方构建)(64 位)中,他们是否将“chromedriver.exe”进程重命名为“谷歌浏览器”?
- html - 检查字符串是否包含数组中的值
- php - Code Igniter 文件缓存 - 比预期更多的未命中
- python - 如何将图像或图标添加到 Pygame 中的按钮矩形?
- javascript - 如何解决react中过多的重新渲染错误
- javascript - OneNote JavaScript API 访问元素
- c# - 在控制器外部的 ASP.NET 中获取 DbContext