Linux中通过grep命令检索文件内容和指定内容前后几行
原文链接: https://www.linuxidc.com/Linux/2017-11/148390.htm
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
---------------------
版权声明:本文为CSDN博主「蜡笔zlx」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhaolixin0726/article/details/53123453
Linux中通过grep命令检索文件内容和指定内容前后几行的更多相关文章
- Linux中利用grep命令如何检索文件内容详解
前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...
- linux(centos8):用grep命令查找文件内容
一,grep的用途: linux平台有最常用的三大文本处理工具:awk/sed/grep grep的功能:搜索指定文件的内容,按照指定的模式匹配,并输出匹配内容所在的行. 需要注意的地方:grep只支 ...
- Unix/Linux中的grep命令(转)
本文转载自:如何使用Unix/Linux grep命令——磨刀不误砍柴工系列.该博文条理很清晰. grep简介 grep在一个或多个文件中查找与模式字符串(pattern)匹配的行,并将搜索的结果打印 ...
- Linux 中的 grep 命令
一,grep命令有什么用 个人觉得grep命令就是一个对文本或输出进行匹配并控制输出的一个工具,看一下下面的参数,部分翻译了,有不对的地方,还请指正: grep --help 匹配模式选择: -E, ...
- Linux中的grep 命令
介绍grep文本处理命令,它也可以解释正则. 常用选项: -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配 ...
- Linux基础教程 linux中使用find命令搜索文件常用方法记录
find是linux非常强大的搜索命令,通过man find查看find手册,可以发现find的说明一屏接一屏,估计要看完也得花不少时间.兄弟连Linux培训 小编总结了下,整理出find常用的使用方 ...
- Linux 中的grep命令单引号,不加任何参数以及双引号的作用
单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么.单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换. 双引号: 把双引号内的 ...
- linux中使用rm命令将文件移到回收站的方法
今天在终端下,看到我的用户目录下有个-的文件夹(maven生成),相要删除收回点空间,习惯性的用命令 rm -rf ~ ,一回车,猛然想起的时候已经来不及了,世界一下子清静了,想死的心都有了! 没错, ...
- linux中的grep命令用法
原文请移驾:http://blog.csdn.net/greytree/article/details/428532 grep -- print lines matching a pattern (将 ...
随机推荐
- 没有找到mspdb80.dll,因此这个应用程序未能启动...问题解决
这里主要针对使用link.exe进行SIG文件制作时,报错. 首先下载,mspdb80.dll:https://www.lanzous.com/i59dgfi 将dll文件移动到我的电脑(32位)C: ...
- Linux筛选数据
grep命令:在文件中查找关键字,并显示所在行(Globally search a Regular Expression and Print) grep text file:在file文件中搜索tex ...
- 03.LNMP架构-PHP源码包编译部署详细步骤
一.环境准备 操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:yasm+libmcrypt+libvpx+tiff+libpng+freetype+jpeg+libg ...
- Sass函数-comparable 判断两个数是否可进行加减、合并
comparable() 函数主要是用来判断两个数是否可以进行“加,减”以及“合并”.如果可以返回的值为 true,如果不可以返回的值是 false: >> comparable(2px, ...
- vue2.0 使用 vue-aplayer
1.安装 npm i vue-aplayer 2.引入 import VueAplayer from 'vue-aplayer' name: "Aplayer", props: [ ...
- 如何解决拖拽或者缩放、移动中的组件canvas有残留情况
当我们在做某些需求,如要拖动echarts图表,或者放大缩小 这个时候,有时连续操作,或者在ie或者内存只有8G的电脑上就会出现canvs残留的情况 我们移动的时候,使用的是transform去做的移 ...
- MinMax 容斥 学习笔记
基本形式 \[ \max(S) = \sum_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}\min(T) \] 证明 不提供数学证明. 简要讲一下抽象 ...
- k8s-calico【转载】
环境 系统:centos7.3192.168.40.50 local-master192.168.40.51 local-node1192.168.40.52 local-node2 master: ...
- tuple unpacking
拆开Tuple lax_coordinates = (33.9425, -118.408056) latitude, longitude = lax_coordinates # tuple unpac ...
- Syntax behind sorted(key=lambda :)
I think all of the answers here cover the core of what the lambda function does in the context of so ...