Linux grep选择行

Linux grep选择行,linux,grep,Linux,Grep,我想从日志文件中选择最近7天的记录,并包含“确定登录” 我正在使用这个命令,但它不起作用,如果我想date=[当前日期-7天]如何编写 cat vsftp.log | grep 'OK LOGIN' |egrep "Sep [1-6]" 你可以: 每天至少应有一次登录。正则表达式是允许的,可能存在误报。缺少空格: grep 'OK LOGIN' vsftp.log | egrep "Sep [1-6]" 投票在这里结束并移动-不是编程question@Adrian:问题可能质量不高:标

我想从日志文件中选择最近7天的记录,并包含“确定登录”

我正在使用这个命令,但它不起作用,如果我想date=[当前日期-7天]如何编写

 cat vsftp.log | grep 'OK LOGIN' |egrep "Sep [1-6]"
你可以:

每天至少应有一次登录。正则表达式是允许的,可能存在误报。

缺少空格:

grep 'OK LOGIN' vsftp.log | egrep "Sep  [1-6]" 

投票在这里结束并移动-不是编程question@Adrian:问题可能质量不高:标题和错误描述“不起作用”不是很具体。但是OP显示了一些努力(提供了中断的最小示例)。这个问题是切实可行的。您完全可以在
bash
中编程。如何在没有编程的情况下获得
[当前日期-7天]
正则表达式?您可以修复它,但它不是一个通用的解决方案。鉴于上述信息,为什么该问题应作为非主题关闭?我可以理解,如果不进行编辑,它可能会因为质量低而被删除。7天包括
8月30日
<代码>“当前日期”并不总是
9月6日
#!/bin/bash

function md()
{
    date +'%b %e' --date "$@"
}

start=`md 'last week'`
end=`md 'now'`
grep 'OK LOGIN' | sed -n "/$start/,/$end/p"
grep 'OK LOGIN' vsftp.log | egrep "Sep  [1-6]"