如何只输出3个月以下的行?

加斯科·彼得
cat a.txt
1387111124 ./asfjlasdf.txt
1348681215 ./akdfyxcv.txt

所以我需要这个:

cat a.txt | SOMEMAGIC
1387111124 ./asfjlasdf.txt

输出应仅包含少于3个月的行。我怎样才能做到这一点?(第一列始终是Unix日期,第二列是一些不带空格的字符串)

斯蒂芬·查泽拉斯(Stephane Chazelas)

另外,如果您date不支持%s,并且有许多awk实现,则可以使用它srand()来获取当前的Unix时间:

 awk 'BEGIN{srand(); d = srand() - 3 * 30 * 24 * 60 * 60}; $1 > d' < a.txt

或使用perl

 perl -ne'BEGIN{$d = time - 3 * 30 * 24 * 60 * 60}print if $_ > $d' < a.txt

请注意,此处的3个月被视为每个90400秒的90天固定期限。

相反,如果您要:不在每月的同一天之前,3个月前的同一天(如果现在是2013-12-15 21:02:01,那应该是从2013-09-15 21开始): 02:01(例如在欧盟时区的91天零一小时前),请参见@Zelda的答案,或:

 perl -MPOSIX -ne 'BEGIN{@t=localtime;$t[4]-=3;$d=mktime @t}
                   print if $_ > $d' < a.txt

(警告:5月29日(非non年),5月30日和31日,7月31日和12月31日,三个月前的日期与GNU相同date -d '3 months ago')。

如果是相反,则表示本月,上一个月或上一个月的前一个月(如果今天是2013-12-15,那将是自2013-10-01 00:00:00以来),那就是:

 perl -MPOSIX -ne 'BEGIN{@t=localtime;$d=mktime 0,0,0,1,$t[4]-2,$t[5]}
                   print if $_ >= $d' < a.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何查看3个月以上的Skype对话?

来自分类Dev

我如何以下面的格式打印给定年份的前五个月的日期

来自分类Dev

恢复3个月的代码

来自分类Dev

在LINQ的最近3个月

来自分类Dev

最近12个月如何列出

来自分类Dev

最近12个月如何列出

来自分类Dev

如何在日期选择器中设置3个月的日期范围?

来自分类Dev

如何从sql表中获取最近3个月的数据

来自分类Dev

如何创建每3个月执行一次的Cron作业?

来自分类Dev

如何使用python在时间序列数据中创建3个月的存储桶

来自分类Dev

如何从Typescript中获取当前日期之前3个月的日期对象

来自分类Dev

SQL如何获取购买间隔为3个月的帐户ID

来自分类Dev

Cal-Heatmap仅连续显示3个月,再显示3个月,直到所有12个月为止

来自分类Dev

如何删除大于6个月的行,但使用SQL确保表中至少剩余100行?

来自分类Dev

as3-加一个月

来自分类Dev

SQL查询以获取最近3个月的数据

来自分类Dev

MySQL选择过去3个月的记录

来自分类Dev

获取最近3个月的日期选择

来自分类Dev

使用JS datepicker显示3个月的集团

来自分类Dev

计算日期之后的3个月-Android

来自分类Dev

pyspark每3个月的平均销售量

来自分类Dev

根据最近3个月的数据汇总

来自分类Dev

使用php从当前月份获取最近3个月

来自分类Dev

SQL查询获得3个月的数据

来自分类Dev

用Python计算每组3个月的变化差异%

来自分类Dev

Rails:如何遍历一个月?

来自分类Dev

如何在DateTime变量中添加1个月?

来自分类Dev

如何度过一个月的日子

来自分类Dev

Rails:如何遍历一个月?