我的日志文件中的$ 3和$ 4列都有一个日期时间戳,我想使用sed
或类似的命令来编辑文件,以删除超过24小时的记录。
2015-07-29 04:30:12
2015-07-29 04:30:21
2015-07-29 04:30:21
2015-07-29 04:30:21
2015-07-29 04:31:42
我成功地使用这样的东西来搜索日期之间的记录。
LAST24HR=$(date "+%Y-%m-%d %H:%M:%S" -d "-24 hour")
NOW=$(date "+%Y-%m-%d %H:%M:%S")
awk '$3" "$4>=from&&$3" "$4<=to' from="$LAST24HR" to="$NOW"
我是否有办法以类似的方式从文件中删除行?
答案 0 :(得分:2)
awk -v "DateRef=$( date "+%Y-%m-%d %H:%M:%S" -d "-24 hour" )" '( $3 " " $4 ) >= DateRef { print }'
我认为您的记录超过24小时&#39;但并不完全是在约会之间的&#39;因为您将当前日期作为参考,我不会怀疑有更新的条目。