我正在处理一个shell脚本。我需要获取包含那天或更早的信息的行。在文件中,每一行都是一条记录,第一行是旧的,最后一行是最新的。 该文件包含:
一些信息\ t日期\ t其他信息
如果我只是grep给定的日期,我会找到我正在寻找的内容,但该文件中的日期是否存在。我发现最后一次出现并从文件的开头获取行。我试过awk但是我完全失败了。它应该给我每行包含该日期或更旧。我的失败和最后的尝试:
awk' $ 1< =" 2015/03/17"'
所以我需要类似于egrep的东西,但它给了我所有日期为2015/03/15或更早的行。或者,我是否必须对每一行进行比较并比较两个日期,根据写出来是否更老?
答案 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 =更改为您想要的任何日期值。