从特定日期获取后续/后退行

时间:2015-03-17 18:53:47

标签: shell date awk

我正在处理一个shell脚本。我需要获取包含那天或更早的信息的行。在文件中,每一行都是一条记录,第一行是旧的,最后一行是最新的。 该文件包含:

  

一些信息\ t日期\ t其他信息

如果我只是grep给定的日期,我会找到我正在寻找的内容,但该文件中的日期是否存在。我发现最后一次出现并从文件的开头获取行。我试过awk但是我完全失败了。它应该给我每行包含该日期或更旧。我的失败和最后的尝试:

  

awk' $ 1< =" 2015/03/17"'

所以我需要类似于egrep的东西,但它给了我所有日期为2015/03/15或更早的行。或者,我是否必须对每一行进行比较并比较两个日期,根据写出来是否更老?

1 个答案:

答案 0 :(得分:0)

应该非常简单,因为您使用的日期格式可以比较为字符..

文件:test.txt

a       2015/03/17      b
c       2015/03/12      d
e       2014/02/10      f
g       2016/01/01      h

Awk命令:

awk -v d="2015/03/15" '{if ($2 <= d) {print $0}}' test.txt

只需将d =更改为您想要的任何日期值。