比较2个数字和当前月份

问题描述 投票:0回答:2

我有一个清单:

$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
bash
2个回答
0
投票

来自手册:

%m month (01..12)

所以在您的脚本中应该是:

used=$(date +%u)

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


0
投票

我想您正在寻找这个:

date +"%m %d"

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.