• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Linux通过grep命令检索文件内容和指定内容前后几行

武飞扬头像
weixin_40191861_zj
帮助5

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

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

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

  例如:

  grep "0101034175" /data/transaction.20170118.log

  在多个文件中检索某个字符串

  命令格式:

  grep "被查找的字符串t" filename1 filename2 filename3 …

  grep "被查找的字符串" *.log

  显示所检索内容在文件中的行数,可以使用参数-n

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

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

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

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

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

  搜索、查找匹配的行数:

  命令格式:

  grep –c "被查找的字符串" 文件名

  grep "被查找的字符串" 文件名 | wc -l

  递归搜索某个目录以及子目录下的所有文件

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

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

  命令格式: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

  获取与整个搜索字符匹配的内容

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

  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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfebeke
系列文章
更多 icon
同类精品
更多 icon
继续加载