在BASH中,可以使用正则表达式来从文件名中提取dd_mm_yyyy的日期。下面是一个示例代码:
#!/bin/bash
# 待处理的文件名
file_name="file_01_12_2022.txt"
# 正则表达式模式
pattern="[0-9]{2}_[0-9]{2}_[0-9]{4}"
# 通过正则表达式从文件名中提取日期
if [[ $file_name =~ $pattern ]]; then
date="${BASH_REMATCH[0]}"
echo "提取到的日期: $date"
else
echo "文件名中未找到匹配的日期"
fi
在上述代码中,我们首先定义了待处理的文件名file_name
和日期的正则表达式模式pattern
。然后,使用=~
操作符将文件名和正则表达式模式进行匹配。如果匹配成功,则BASH_REMATCH
数组中的第一个元素(BASH_REMATCH[0]
)将包含匹配到的日期。最后,我们通过echo
语句输出提取到的日期,如果找不到匹配的日期,则输出相应的提示信息。
运行上述代码,将会输出:
提取到的日期: 01_12_2022
请注意,正则表达式模式[0-9]{2}_[0-9]{2}_[0-9]{4}
用于匹配两个数字、下划线、两个数字、下划线和四个数字的模式。你可以根据实际需要修改正则表达式来适应不同的日期格式。