![如何将日志文件与日期语法匹配](https://linux22.com/image/177912/%E5%A6%82%E4%BD%95%E5%B0%86%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E4%B8%8E%E6%97%A5%E6%9C%9F%E8%AF%AD%E6%B3%95%E5%8C%B9%E9%85%8D.png)
我们有这样的日志
more log
20/08/02 13:41:39 some text
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB
20/08/02 13:41:40 some text
20/08/02 13:41:41 some text
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2347
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2347
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2347
20/08/02 13:41:42 some text
20/08/02 13:41:43 some text
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2347
我只想匹配带日期的行
所以我们这样做
echo "$(date +"%Y/%m/%d")"
它给了我们
2020/08/02
但是当我们尝试 grep 记录日期时,我们没有得到任何输出
例子:
grep "$(date +"%Y/%m/%d")" log
我的 grep 语法有什么问题
?
预期产出
20/08/02 13:41:39 some text
20/08/02 13:41:40 some text
20/08/02 13:41:41 some text
20/08/02 13:41:42 some text
20/08/02 13:41:43 some text
答案1
您要查找的行以 开头20/08/02
,而不是2020/08/02
。尝试%y
代替%Y
,这将给出年份的最后两位数。