Perl 在日志文件中搜索2个历元时间之间的条目范围

Perl 在日志文件中搜索2个历元时间之间的条目范围,perl,awk,epoch,Perl,Awk,Epoch,我使用awk在日志文件中搜索两个纪元之间的行列表。 这就是我所做的。。。(我收到了大量的参赛作品) 我还希望能够用Perl变量替换times,而不必使用[0-9][0-9]并在Perl脚本中使用它。我很困惑 system(awk '/([$MinRange..$MaxRange])/' /Location/Data.txt) 谢谢这只是根据ooags的评论给出答案 要从一个数字搜索到另一个数字,请执行以下操作: cat file 1 one 2 two 3 thee 4 four 5 five

我使用
awk
在日志文件中搜索两个纪元之间的行列表。 这就是我所做的。。。(我收到了大量的参赛作品)

我还希望能够用Perl变量替换times,而不必使用
[0-9][0-9]
并在
Perl
脚本中使用它。我很困惑

system(awk '/([$MinRange..$MaxRange])/' /Location/Data.txt)

谢谢

这只是根据ooags的评论给出答案

要从一个数字搜索到另一个数字,请执行以下操作:

cat file
1 one
2 two
3 thee
4 four
5 five
6 six
7 seven
8 eight
9 nine
10 ten

awk'$1>=4&&$1您误解了在正则表达式中使用方括号。它需要更像是
awk'$1>=1480360000&&$1,你就在这里。我现在有了更好的理解。谢谢你,伙计。最后两个建议的正则表达式可能是
[0-9]{3}
[0-9]{1,3}
?或者引入一个新的正则表达式概念会破坏您的课程流程吗?@Miller对于大多数
gnu awk
,您需要添加
--re interval
来使用此选项<代码>[0-9]{1,3}
将给出类似于
08
003
的数字,而不是
8
3
。这可能是正确的,也可能不是正确的,取决于输入数据。是的,是的,我建议的第二个正则表达式不会限制0前缀的情况。但是您的原始正则表达式也没有边界,因此可以轻松地将
00009
作为匹配值。我想我们可以把它扩展到
\b(?:(?=0\b)|(?!0))[0-9]{1,3}\b
,但是我们肯定偏离了你原来的课程的轨道。:)@米勒:你说得对。使用正则表达式时,边界很重要。
cat file
1 one
2 two
3 thee
4 four
5 five
6 six
7 seven
8 eight
9 nine
10 ten
awk '$1>=4 && $1<=8' file
4 four
5 five
6 six
7 seven
8 eight