2017-06-12 103 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