最近在做日志清理,日志匹配第一次弄,记录下
日志类型: req.2023-04-01.log.1
重点是写的正则表达式和获取时间
知识点:
1.获取日期
%Y-%m-%d是YYYY-mm-dd类型的日期
#获取今天的日期
date +%Y-%m-%d
#获取前天的日志(数字2代表两天前)
date -d "2 days ago" +%Y-%m-%d
$(date -v-2d +%Y-%m-%d #注:改命令仅适用于macOS系统
2.获取文件名(通过文件获取,$file是文件)
filename=$(basename "$file")
3.匹配日期的正则表达式
#示例
$file_name =~ ^(debug|error|info|req)\.[0-9]{4}-[0-9]{2}-[0-9]{2}\.log\.[0-9]+$
shell脚本中要判断正则表达式需要用=~
^号开头 $结尾
[0-9]{2} 的意思是匹配0-9的数字,有两位00~99,以此类推
[0-9]+ 的意思是匹配数字,可以是1位或者无数位
4.判断文件类型
#普通文件(注意,前后都要有空格)
if [ -f "$file" ]
#文件夹
if [ -d "file" ]