Shell 脚本中的 RegEx 将 RegEx 过滤器连接到文件名中

问题描述 投票:0回答:1

我想检测名称中带有特定日期戳的文件是否在目录中。然而,还有一个与之相连的时间戳。我可以计算日期戳,但不能计算时间戳,所以我需要某种通配符。

这是示例文件名:

backup_myserver_202310152100.log
这是我的表情:
log_file="backup_${hostname_arg}_${logfile_sunday}[0-9]*.log"
但它实际上搜索这个文件名(通过 echo 检查):
backup_myserver_20231015[0-9]*.log

如果有帮助的话,时间戳总是由数字表示。

我尝试从 www 和其他问题中获取解决方案,但似乎我不适合 RegEx。

我也尝试了上面的表达式以及以下表达式:

log_file="backup_${hostname_arg}_${logfile_sunday}{....}.log"
因为我读到一点确实代表一个字符。答案的来源非常多样化。

bash shell logic glob
1个回答
0
投票

你的命令似乎工作正常

find -maxdepth 1 -type f -name“backup_myserver_[0-9]*.log”

我也尝试将其放入一个小的 shell 脚本中,并且它也在那里工作

#! /bin/bash
expr='backup_myserver_[0-9]*.log'
结果=$(查找./-maxdepth 1 -type f -name "${expr}")
回显$结果

Code result of shell script

© www.soinside.com 2019 - 2024. All rights reserved.