我正在尝试解析 apache 日志文件。基本上,我想在日志文件中查找 11:00,然后输出当时发生的每一行的最后六位数字。
我不知所措。有人可以帮忙吗?
这样的事情可以做到:
awk '/11:00/ {print substr($0,length($0) - 6)}' file
/11:00/ {}
匹配包含11:00
的行并执行{}
.print substr($0,length($0) - 6)
打印这些行的最后 6 个字符:从“字符串长度 - 6”开始,因为它打印从那一点到结束的所有内容。$ cat a
hello bye bye
11:00 hello bye bye basd
11:23 hello this is
another line
11:00 with some text
$ awk '/11:00/ {print substr($0,length($0) - 6)}' a
ye basd
me text
根据您的评论:
嘿,我刚刚检查过,它有效!除了,我的错误..这是我在日志中需要的最后一个字段,它的长度实际上是不同的,所以我猜我需要某种方式在最后一个空格之后“剪切”所有内容!——</p>
让我们尝试以下方法:
awk '/11:00/ {print $NF}' file
/11:00/ {}
匹配包含11:00
的行并执行{}
.print $NF
打印最后一个字段。$ cat a
hello bye bye
11:00 hello bye bye basd
11:23 hello this is
another line
11:00 with some text
$ awk '/11:00/ {print $NF}' a
basd
text