您的位置:首页 > 运维架构 > Linux

linux下如何获得特定字符串前后几行文本

2016-11-10 23:23 274 查看
如果要获得一个文件中的最后几行,使用tail命令就可以很方便的实现。但在有些时候,会需要用到如标题中所描述的功能。

我举一个具体的例子:在打印日志堆栈信息时,就是在字符串“exception” 之后的几行,但这整个部分是在文件的中间,如果将这部分数据提取出来呢?

使用grep命令可以比较轻松达到目的,具体使用如下:

其中:

A:表示在字符串之后 after  context

B:表示在字符串之前 before context

n:要获取多少行文本 line number

key:为要查找的字符串

file:文件名

比如上面提到的例子中,可以使用如下命令获取弹性常数:

-i表示忽略大小写。

获取的几行文本可以通过管道传递给其他命令进行进一步的提取或使用。

举个例子:

要获取日志中包含“exception”字符串的后边20行堆栈信息: 

命令:
grep -A 20 -i "exception" filename
结果如下:



那如果我们想获取异常日志的前10行和后10行,不用加-A和-B,使用如下命令就可以了:

grep -10 -i "exception" filename
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux