Linux 输出最后六个字符串
我正在尝试解析apache日志文件。基本上,我想在日志文件中grep 11:00,然后输出当时发生的每行的最后六位数字Linux 输出最后六个字符串,linux,apache,grep,Linux,Apache,Grep,我正在尝试解析apache日志文件。基本上,我想在日志文件中grep 11:00,然后输出当时发生的每行的最后六位数字 我不知所措。有人能帮忙吗?像这样的事情可以解决: awk '/11:00/ {print substr($0,length($0) - 6)}' file 解释 /11:00/{}匹配包含11:00的行,并执行{}中的操作 print substr($0,length($0)-6)打印这些行的最后6个字符:从“字符串的长度-6”开始打印,因为它打印从该点到结尾的所有内容
我不知所措。有人能帮忙吗?像这样的事情可以解决:
awk '/11:00/ {print substr($0,length($0) - 6)}' file
解释
匹配包含/11:00/{}
的行,并执行11:00
中的操作{}
打印这些行的最后6个字符:从“字符串的长度-6”开始打印,因为它打印从该点到结尾的所有内容print substr($0,length($0)-6)
更新 根据您的评论:
嘿,我刚检查过,它能用!除了我的错误。。这是最后一次了 我在日志中需要的字段,它的长度实际上是不同的,所以我 我猜我需要一些方法来“削减”最后一次之后的一切 空间!– 让我们尝试以下方法:
awk '/11:00/ {print $NF}' file
解释
匹配包含/11:00/{}
的行,并执行11:00
中的操作{}
打印最后一个字段print$NF
你的方法是…?我试过这个:grep“11:00”>文件和perl-F,-lane“print$F[-6]”文件不走运。我也试过。。输出=
grep“11:00”
;echo${output:-6}我总是很惊讶人们能用awk做这样的事情。我觉得它像克林贡人!我试试这个,谢谢!很高兴看到它可能对你有用,@user272812!既然你是新来的,记住如果你的问题已经解决了,你可以把答案标记为接受。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!嘿,我刚检查过,它能用!除了我的错误。。这是我在日志中需要的最后一个字段,它的长度实际上是不同的,所以我猜我需要某种方式在最后一个空格后“剪切”所有内容@user272812则速度更快:{print$NF}
成功。检查我的最新答案。
awk '/11:00/ {print $NF}' file
$ 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