我试图解析apache日志文件。基本上,我想在日志文件中grep 11:00,然后输出当时发生的每一行的最后六位数。
我不知所措。有人可以帮忙吗?
答案 0 :(得分:1)
这样的事情可以做到:
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
根据您的评论:
嘿,我刚检查过它的确有效!除了,我的错误..这是最后一次 我需要在日志中的字段,实际上长度不同,所以我是 猜测我需要一些方法在最后一次“切割”所有东西 空间! -
让我们试试以下内容:
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