比较2个数字和当日月份

我有一个列表:

$aws events list-rules | awk '{print$6" " $7}'
ENABLED
ENABLED
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
wanglong52044 回答:比较2个数字和当日月份

我想您正在寻找这个东西:

date +"%m %d"

而且,您可以在awk中进行比较逻辑,也就是说,您不需要for循环,所有事情都可以单行完成。您的代码开始dateawk处理x次。

  • 由于您已经有了Shell脚本,因此可以提取当前日期的m和d,并保存在变量中。 AWK可以使用Shell变量

  • 您还可以执行date并以awk的形式获取输出,然后在相同的awk进程中进行比较。

,

您可以使用此awk删除所有早于当前日期的记录:

awk -v dt="$(date '+%d %m')" '{fdt = sprintf("%02d%02d",$6,$7)} fdt >= dt' file

7 11
7 11
7 11
,

来自手册:

%m month (01..12)

因此在脚本中应该是:

used=$(date +%u)

如果您需要这一天,它将是:date +%d

本文链接:https://www.f2er.com/3146107.html

大家都在问