Shell 获取日期范围内所有行的列表

Shell 获取日期范围内所有行的列表,shell,awk,grep,Shell,Awk,Grep,我有一个日志文件,其中包含如下条目: 24/09/20 | 11:22:56am | Server1 | Backup Done 28/09/20 | 10:44:05am | Server1 | Error in Config File 10/10/20 | 04:22:10am | Server1 | Error in Config File 如何仅提取介于 [今日日期][今日日期-30天] 在网上搜索后,我发现这个命令可以工作,但它给出了一个错误 sed -n "/$(d

我有一个日志文件,其中包含如下条目:

24/09/20 | 11:22:56am | Server1  | Backup Done
28/09/20 | 10:44:05am | Server1  | Error in Config File
10/10/20 | 04:22:10am | Server1  | Error in Config File
如何仅提取介于

[今日日期][今日日期-30天]

在网上搜索后,我发现这个命令可以工作,但它给出了一个错误

sed -n "/$(date --date='-30 day' '+%d/%m/%y')/,/$(date +'%d/%m/%y')/p"
错误


任何人都可以帮我提取当前日期30天前的行。

使用GNU
date
获取30天前的日期

然后将格式反转为
%y%m%d
,以便与
awk
进行字母顺序比较

start=$(日期--date='30天前'+'%y%m%d')
awk-v start=“$start”{split($1,a,“/”)a[3]a[2]a[1]>=start文件
注:一般来说,时间戳文件应首选可直接排序或比较的日期格式,如字符串(如),或数字(如)

cat logs.txt | sed -n "/$(date --date='-10 day' '+%d/%m/%y')/,/$(date '+%d/%m/%y')/p"
sed: -e expression #1, char 5: unknown command: `1'