我有一个清单:
$aws events list-rules | awk '{print$6" " $7}'
7 11
1 11
7 11
7 11
4 11
6 11
上面的列表:4 11
表示:4 Nov
并且我想比较该列表和当前时间:$date
Nov 7
我已经尝试过,但仅是一天的比较:我的bash脚本:
!/bin/bash
x=`aws events list-rules |grep "transaction*" | awk '{print$6}'`
for i in $x
do
used=$( date | awk '{print$3}' )
if [ $i -lt $used ]
then
echo $i;
fi
done
但是我不知道如何隐瞒Nov
-至-> 11
进行比较,但只比较日期,也比较月份。
[请帮我,bash或python。
更新:
#!/bin/bash
x=`aws events list-rules | awk '{print$7" " $6}'`
for i in $x
do
used=$( date +"%m %d" )
if [ $i -lt $used ]
then
echo $i;
fi
done
但错误:
./test.sh: line 6: [: too many arguments
./test.sh: line 6: [: too many arguments
./test.sh: line 6: [: too many arguments
./test.sh: line 6: [: too many arguments
来自手册:
%m month (01..12)
所以在您的脚本中应该是:
used=$(date +%u)
如果您需要这一天,将是:date +%d
我想您正在寻找这个:
date +"%m %d"
而且,您可以在awk中进行比较逻辑,也就是说,您不需要for循环,所有事情都可以在一个直线上完成。您的代码启动date
,awk
处理x次。
由于您已经有了Shell脚本,因此可以提取当前日期的m和d,并保存在变量中。 awk可以使用shell变量
您还可以执行date
并以awk的形式获取输出,然后在相同的awk进程中进行比较。