我正在尝试使用正则表达式编写一个 bashscript 检查来区分以下文件。我试图在 if 语句中选择 DRLIC_INFO_20170912.out 而不是 DRLIC_INFO_20170912_TEMP.out。 20170912 将是每日时间戳。
输入文件名:
DRLIC_INFO_2017-09-12.out
DRLIC_INFO_2017-09-12_TEMP.out
当前检查:
SEARCH_DRLIC_INFO='DRLIC_INFO'
if [[ $filename == *$SEARCH_DRLIC_INFO* ]]
最佳答案
能否请您尝试关注并告诉我这是否对您有帮助。
filename1="DRLIC_INFO_20170912_TEMP.out"
regex="DRLIC_INFO_[[:digit:]]+_TEMP.out"
if [[ $filename1 =~ $regex ]]; then echo "File named "$filename1 " found."; else echo "File name " $filename1 " not found."; fi
或者如果您想具体说明字符串中应包含 8 位数字的日期,您也可以将上面的正则表达式变量更改为以下。
regex="DRLIC_INFO_[[:digit:]]{8}_TEMP.out
编辑:如果您想使用您所显示的 SEARCH_DRLIC_INFO 变量,您可以尝试执行以下操作,然后让我知道。
SEARCH_DRLIC_INFO="DRLIC_INFO"
filename1=$SEARCH_DRLIC_INFO"_20170912_TEMP.out"
regex="DRLIC_INFO_[[:digit:]]{8}_TEMP.out"
if [[ $filename1 =~ $regex ]]; then echo "File named "$filename1 " found."; else echo "File name " $filename1 " not found."; fi
关于REGEX 文件名 Shellscript 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46181240/