原文链接: https://www.linuxidc.com/Linux/2017-11/148390.htm

Linux系统中搜索、查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索。

  1. 搜索某个文件里面是否包含字符串

    命令格式:grep "被查找的字符串" filename1

    例如:

    grep "0101034175" /data/transaction.20170118.log
  2. 在多个文件中检索某个字符串

    命令格式:

    1. grep "被查找的字符串t" filename1 filename2 filename3 ...
    2. grep "被查找的字符串" *.log
  3. 显示所检索内容在文件中的行数,可以使用参数-n

    命令格式: grep -n "被查找的字符串" *.log

  4. 检索时需要忽略大小写问题,可以使用参数“-i”

    命令格式: grep -i "被查找的字符串" *.log

  5. 从文件内容查找不匹配指定字符串的行

    命令格式:grep –v "被查找的字符串" 文件名

  6. 搜索、查找匹配的行数:

    命令格式:

    1. grep –c "被查找的字符串" 文件名
    2. grep "被查找的字符串" 文件名 | wc -l
  7. 递归搜索某个目录以及子目录下的所有文件

    命令格式:grep –r "被查找的字符串" 文件目录

  8. 获取哪些文件包含搜索的内容,并列出文件名

    命令格式:grep -H –r "被查找的字符串" 文件目录 | cut -d: -f1 [| uniq]

    例如:

    grep -H -r "v\$temp_space_header" /u01/app/Oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1
    
    grep -H -r "v\$temp_space_header" /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq
  9. 获取与整个搜索字符匹配的内容

    命令格式:grep –w "被查找的字符串" 文件名

  10. grep命令与find 命令的结合,实现联合检索

    命令格式:find . -name '*.sql' -exec grep -i '被检索内容' {} \; -print

    例如:

    find . -name '*.sql' -exec grep -i 'v\$temp_space_header' {} \; -print

Linux命令-文件文本操作grep  http://www.linuxidc.com/Linux/2015-12/126259.htm

grep正则表达式 http://www.linuxidc.com/Linux/2015-09/123035.htm

Linux中正则表达式与文件格式化处理命令(awk/grep/sed) http://www.linuxidc.com/Linux/2013-03/81018.htm

Linux基础之grep和正则表达式 http://www.linuxidc.com/Linux/2016-10/136250.htm

14 个 grep 命令的例子 http://www.linuxidc.com/Linux/2015-05/117626.htm

Linux文本处理工具grep和正则表达式及egrep与grep区别  http://www.linuxidc.com/Linux/2016-08/134046.htm

Linux基础之-正则表达式(grep,sed,awk)  http://www.linuxidc.com/Linux/2017-05/144221.htm

Linux文本处理工具及grep  http://www.linuxidc.com/Linux/2017-03/142277.htm

正则表达式与grep和sed  http://www.linuxidc.com/Linux/2017-10/147269.htm

grep命令中文手册(info grep翻译)  http://www.linuxidc.com/Linux/2017-09/146645.htm

grep 命令系列:如何在 UNIX 中根据文件内容查找文件 http://www.linuxidc.com/Linux/2016-01/128017.htm

其他:

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

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

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

01
$grep-A|B n"key"file
其中:

A:表示在字符串之后 after  context
B:表示在字符串之前 before context
n:要获取多少行文本 line number
key:为要查找的字符串
file:文件名
比如上面提到的例子中,可以使用如下命令获取弹性常数:

0
grep -A 10 -B 10 -i “key” filename
-i表示忽略大小写。

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

举个例子:

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

命令:

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

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

grep -10 -i "exception" filename
---------------------
版权声明:本文为CSDN博主「蜡笔zlx」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhaolixin0726/article/details/53123453

Linux中通过grep命令检索文件内容和指定内容前后几行的更多相关文章

  1. Linux中利用grep命令如何检索文件内容详解

    前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...

  2. linux(centos8):用grep命令查找文件内容

    一,grep的用途: linux平台有最常用的三大文本处理工具:awk/sed/grep grep的功能:搜索指定文件的内容,按照指定的模式匹配,并输出匹配内容所在的行. 需要注意的地方:grep只支 ...

  3. Unix/Linux中的grep命令(转)

    本文转载自:如何使用Unix/Linux grep命令——磨刀不误砍柴工系列.该博文条理很清晰. grep简介 grep在一个或多个文件中查找与模式字符串(pattern)匹配的行,并将搜索的结果打印 ...

  4. Linux 中的 grep 命令

    一,grep命令有什么用 个人觉得grep命令就是一个对文本或输出进行匹配并控制输出的一个工具,看一下下面的参数,部分翻译了,有不对的地方,还请指正: grep --help 匹配模式选择: -E,  ...

  5. Linux中的grep 命令

    介绍grep文本处理命令,它也可以解释正则. 常用选项: -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配 ...

  6. Linux基础教程 linux中使用find命令搜索文件常用方法记录

    find是linux非常强大的搜索命令,通过man find查看find手册,可以发现find的说明一屏接一屏,估计要看完也得花不少时间.兄弟连Linux培训 小编总结了下,整理出find常用的使用方 ...

  7. Linux 中的grep命令单引号,不加任何参数以及双引号的作用

    单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么.单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换. 双引号: 把双引号内的 ...

  8. linux中使用rm命令将文件移到回收站的方法

    今天在终端下,看到我的用户目录下有个-的文件夹(maven生成),相要删除收回点空间,习惯性的用命令 rm -rf ~ ,一回车,猛然想起的时候已经来不及了,世界一下子清静了,想死的心都有了! 没错, ...

  9. linux中的grep命令用法

    原文请移驾:http://blog.csdn.net/greytree/article/details/428532 grep -- print lines matching a pattern (将 ...

随机推荐

  1. 上传.cgi在252板子上跑

    1.windows下写好.c程序 2.进入linux,准备交叉编译 arm-hisiv600-linux-gcc -g -Wall -o xxx.cgi xxx.c(交叉编译工具取决于板子) 3.把. ...

  2. shell条件判断命令test

  3. I2C走线技巧

  4. HDU 6613 Squrirrel 树形dp

    题意:给你一颗树,你可以把这棵树上的一条边的边权变为0,现在让你选一个根,让所有点到这个点的最大距离尽量的小.如果有多个根的最大距离距离相同,输出编号最小的边. 思路:如果没有把边权变为0的操作,这个 ...

  5. css3 清除浮动

    eg:三个div,父级div下面有两个div分别float:left和float:right <style> .container{width:400px;border:3px soild ...

  6. MySQL优化系列之一

    MySQL数据库常见的两个瓶颈是CPU和I/O. CPU在饱和的情况下一般发生在数据装入内存或者从磁盘上读取数据的时候,当装入的数据远大于 内存容量的时候,这时可能会发生I/O瓶颈, 如果是分布式应用 ...

  7. 设置flex 为1

    父级的宽度: 375 用来每个子元素的宽度:40 设置了  flex:1,每个子元素的宽度为125 125*3= 375, 设置flex=1后子元素会平均的分配父级元素剩下的宽度

  8. 使用axios上传文件到阿里云对象文件存储服务器oss

    背景 OSS可用于图片.音视频.日志等海量文件的存储.各种终端设备.Web网站程序.移动应用可以直接向OSS写入或读取数据.OSS支持流式写入和文件写入两种方式.使用阿里云oss做文件存储的时候,不可 ...

  9. docker:docker的基本了解

    1.什么是docker 简单的理解:docker相当于vmvare,容器相当于多个虚拟机,vmvare上可以运行ubantu16.04的虚拟机,也可以运行centos虚拟机,还可以运行redhat虚拟 ...

  10. MySQL查看表索引

    mysql> show index from tblname; mysql> show keys from tblname; · Table 表的名称. · Non_unique 如果索引 ...