使用awk
,我想用自己的时间戳如何使用awk取出匹配其时间戳的列表?
我试图筛选线
awk '/29/Dec/2016-07:52/' filename
,但它给错误
AWK:/ 29/DEC/2016-07:52/
AWK:^语法错误
如何取出匹配其时间戳的列表?
使用awk
,我想用自己的时间戳如何使用awk取出匹配其时间戳的列表?
我试图筛选线
awk '/29/Dec/2016-07:52/' filename
,但它给错误
AWK:/ 29/DEC/2016-07:52/
AWK:^语法错误
如何取出匹配其时间戳的列表?
这是因为/
所以你需要逃避它被用来作为分隔符:
awk '/29\/Dec\/2016-07:52/' filename
另外,如果你不想担心逃跑,你可以使用不同的变体:
awk '$0 ~ "29/Dec/2016-07:52"' filename
当然,如果包含这些字符串的行提取之后是简单的,awk
可能是矫枉过正 - 你可以用grep
做到这一点:
grep -F '29/Dec/2016-07:52' filename
只是想在这里在这里加入paxdiablo的回答,“/”具有特殊的意义,所以我们必须使用转义序列告诉awk中不采用它的特殊意义,我们都在寻找相同的字符“/”不为它的特殊含义。 – RavinderSingh13
这第二个是不是非正则表达式的变体,它只是使用动态正则表达式,而不是一个恒定的正则表达式。非正则表达式的变体将是'AWK '指数($ 0, “29/DEC/2016-07:52”)' filename'。 '/'是常量的正则表达式分隔符,而不是分隔符。 –
@EdMorton,感谢您的评论,已经调整了适合的答案。 – paxdiablo
你应该逃避'/'的日期,如:'/ 29 \ /月\/2016-07:52 /'。 –