我正在查看现有脚本,并试图了解某条线的作用。我有以下命令:
grep -v "[0-9]\{8\}030[0-9]\{4\}"
无法用“真实”的术语来理解我在寻找什么。我知道因为它是一个-v,它正在寻找没有这种模式的每一行;但无法弄清楚模式是什么。
从我可以破译的内容来看,我认为它应该寻找(使用N代表任何数字0到9) N {8} 300N {4};但这没有任何意义,因为它搜索的日志文件不包含任何接近此的内容。被搜索的日志文件确实包含一个时间字符串,例如201401100528086;所以我确定grep排除了一段时间..但我不能肯定地说。
答案 0 :(得分:1)
{n}
是重复计数,它与左侧原子的n
个副本完全匹配。所以我们可以将这个表达分解为这些部分:
[0-9] {8} - match 8 digits
030 - match "030" exactly
[0-9] {4} - match 4 digits
因此,此模式匹配包含"########030####"
的任何内容,其中每个#
是0到9的数字。
如果它检查的字符串的格式为YYYYmmddHHMMSS
,似乎就是这种情况,这个模式似乎是为了匹配凌晨3点到凌晨3点10分之间发生的任何时间字符串。
答案 1 :(得分:0)
似乎说:不要显示小时为“3”且小时以“0”(0300 - 0309)开头的日志条目