2017-06-12 81 views
0

我需要从最近几天的日志文件中grep特定模式。在shell脚本中获取日期

我想把过去几天的日期变成一个变量,它可以在grep命令中用于搜索模式。日志模式如下:

log-gr_base.log.2017-06-08.gz 

不过,我收到如下错误

date: invalid date ‘=1 day ago’ 
date: invalid date ‘=2 day ago’ 
date: invalid date ‘=3 day ago’ 
date: invalid date ‘=4 day ago’ 

shell脚本

#!/bin/sh 
for ((dy=1;dy<=4;dy++)) 
do 
dt= $(date --date ="$dy day ago" +'%Y-%m-%d') 
echo $dt 
done 

预期结果

2017-06-11 
2017-06-10 
2017-06-09 
2017-06-08 
+0

你不应该有'之间的一个--date空间'和'=“$ dy day ago”'。另外,你还有其他一些语法错误。 – OrangesV

回答

0

一些变化:

#!/bin/bash 
for((dy=1;dy<=4;dy++)) 
do 
    dt=$(date --date="$dy days ago" +"%Y-%m-%d") 
    echo $dt 
done 

/bin/sh(对我来说是dash)和dashç像格式不工作,所以做:

#!/bin/sh 
for dy in `seq 1 4` 
do 
    dt=$(date --date="$dy days ago" +"%Y-%m-%d") 
    echo $dt 
done 
+0

感谢它的工作 – Arun

+0

:)))https://stackoverflow.com/help/someone-answers – tso