原文链接: 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. JAVA-第一期学习(上)

    前言 果然,flag这个东西不能随便立,在我立志要学习java的第4天,我终于打开了我的eclipse.. 本章学习的内容是红框,第一期学习.真好,7月份需要学习完的东西,现在连helloworld还 ...

  2. 关于javascript提交到java后台空格去不掉ASCII为160的解决办法

    今天正则表达式匹配一个字符串,怎么都不对. 用正则表达式去掉尝试str.replaceAll("\\s*","");  在或者用replaceAll(" ...

  3. 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记

    最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...

  4. Django学习笔记-修改Django的默认的数据库

    1.修改设置settings中的配置 DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os ...

  5. Vue-native绑定原生事件

    首先介绍一下是什么意思: 意思就是当你给一个vue组件绑定事件时候,要加上native!如果是普通的html元素!就不需要 <div id = "app"> <m ...

  6. ARC101E Ribbons on Tree 容斥原理+dp

    题目链接 https://atcoder.jp/contests/arc101/tasks/arc101_c 题解 直接容斥.题目要求每一条边都被覆盖,那么我们就容斥至少有几条边没有被覆盖. 那么没有 ...

  7. Boyer-Moore

    Boyer-Moore 只做这些失败的匹配,就可以排除掉相应的对齐位置.在BM算法中,模式串P与文本串T的对准位置依然自左向右移动,而在对准位置确是自右向左的逐一比对各个字符串,具体的,在每一轮自右向 ...

  8. CentOS7 安装KVM

    检测 输入命令如果有输出表示CPU支持虚拟化 grep -E 'svm|vmx' /proc/cpuinfo 检查模块(保证有如下内容) lsmod | grep kvm 结果如下:(kvm_inte ...

  9. VTF/AMROC安装指南

    平台 Ubuntu 16.04. 准备工作 安装gfortran 和openmpi sudo apt-get install gfortran sudo apt-get install openmpi ...

  10. onkeyup的使用(将输入值为非数字的字符替换为空)

    onkeyup:当输入值的键盘抬起时触发这个事件. 例如: onkeyup="this.value=this.value.replace(/\D/g,'') 这是个正则式验证,用来验证输入值 ...