grep详解
一.简介
Global Regular Expression Print,是一种强大的文本搜索工具,能使用正则表达式。
二.语法
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
如果用-E/-e,则pattern就不需要转义。
2.1 [options]主要参数
| 选项 | 备注 |
| -c | 只输出匹配行的计数。 |
| -o | 只输出匹配的部分。 |
| -i | 不区分大小写(只适用于单字符)。 |
| -h | 查询多文件时不显示文件名。 |
| -l | 查询多文件时只输出包含匹配字符的文件名。 |
| -L | 列出不匹配的文件名 |
| -n | 显示匹配行及行号。 |
| -s | 不显示不存在或无匹配文本的错误信息。 |
| -v | 显示不包含匹配文本的所有行(反向)。 |
| -r | 搜索子目录 |
| -d | 略过子目录 |
| -A n | 匹配行上下文向后追加n行 |
| -B n | 匹配行上下文向前追加n行 |
| -C n | 匹配行上下文向前/向后都追加n行 |
| -E | 等价于egrep,正则义 |
| -F | 等价于fgrep,转义 |
2.2 pattern正则表达式主要参数(用\转义)
| 选项 | 备注 |
| \ | 忽略正则表达式中特殊字符的原有含义。 |
| | | 或 |
| ^ | 匹配正则表达式的开始行。 |
| $ | 匹配正则表达式的结束行。 |
| \< | 从匹配正则表达 式的行开始。 |
| \> | 到匹配正则表达式的行结束。 |
| [ ] | 单个字符,如[A]即A符合要求 。 |
| [ - ] | 范围,如[A-Z],即A、B、C一直到Z都符合要求 。 |
| . | 所有的单个字符。 |
| ? | 至多1次 |
| * | 零次以上。 |
| + | 1次以上。 |
| {n} | 严格匹配n次 |
| {n,} | n次以上 |
| {n,m} | [n,m]次 |
三.简例
• $ grep ‘test’ *.txt
显示所有以d开头的文件中包含 test的行。
• $ grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
• grep -o -E 'id=[0-9]+' data.doc
只输出行中"id=xxx"的部分。
• grep -Ev '^$|^#' test.txt
匹配非空行和注释行
• ps -aux|grep tomcat | grep -v grep
排除自身
• $ grep ‘[a-z]\{5\}’ aa
• $ grep ‘[a-z]\+’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
• $ grep ‘w\(es\)t.*\1′ aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。
• $ grep pattern1 | pattern2 files
或
• $ grep pattern1 files | grep pattern2
与
• $ grep 'aa' a.txt | wc -l
统计行数
• $ grep '\$' a.txt
忽略正则表达式中特殊字符的原有含义
• grep '^[^48]' data.doc
不匹配行首是48的行
• grep '[^a-zA-Z]oo' pp
匹配oo之前没字符的行
• egrep '219|216' data.doc
使用扩展模式匹配
• egrep 'g(o|pp)d' pp
匹配含有god或gppd的行
end
grep详解的更多相关文章
- ps -ef|grep详解 、kill与kill -9的区别
ps -ef|grep详解 ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 grep命令是查找 ...
- Linux文件搜索命令locate、which、grep详解
命令locate详解 命令locate,其基本功能是在文件资料库中可以快速的搜索系统文件,占用系统资源很少,例如:locate my.cnf 还可以使用locate -i [文件名],不区分大小写进行 ...
- linux之文件查找find grep详解,以及压缩归档
.find linux里的实时查找工具,通过制定路径完成文件查找. find[options]...[查找路径] [查找条件] [处理动作] 查找路径:查找的位置,默认是当前文件夹. 查找条件:指定查 ...
- linux grep详解
Table of Contents 1. grep简介 2. grep正则表达式元字符集(基本集) 3. 用于egrep和 grep -E的元字符扩展集 4. POSIX字符类 5. Grep命令选项 ...
- ps -ef|grep详解
ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 grep命令是查找,是一种强大的文本搜索工具, ...
- grep 详解
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.(global search regular expression(RE) and print out the l ...
- awk sed grep 详解
Linux的文本处理工具浅谈 awk [功能说明] 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS竖着切,列 ...
- linux命令之——grep详解
grep命令用于查找文件里符合条件的字符串:也可以用于查找内容包含指定的范本样式的文件.它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并输出含有该字符串的文 ...
- Linux grep 查找字符所在文件(grep详解)
查找字符所在文件 grep -ir "S_ROLE" ./* -i 不区分大小写 -r 查找字符出处 -a --text #不要忽略二进制的数据. -A<显示行数& ...
随机推荐
- BZOJ1106: [POI2007]立方体大作战tet
1106: [POI2007]立方体大作战tet Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 419 Solved: 302[Submit][St ...
- 一、mysql分表简单介绍
一.Mysql分表的原因 1.当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了. 分表的目的就在于此,减小数据库的负担,缩短查询时间. 2.mysql中 ...
- c语言结构体1之定义
这是在复习阶段随便小结的一些东西 别喷哦 结构体定义的三种方式 注意事项: 1结构体括号后面有分号 2#define得放在程序上面 3成员名可以和结构体名相同 4结构体类型不能直接访问成员,也不能赋值 ...
- 【转】iOS 解决ipv6问题
解决ipv6的方法有很多种,由于现在国内的网络运营商还在使用ipv4的网络环境,所以appstore应用不可能大范围去修改自己的服务器, 而且国内的云服务器几乎没有ipv6地址. 这里附上苹果开发平台 ...
- [置顶] STM32移植contiki进阶之三(中):timer 中文版
鉴于自己英语水平不高,在这里,将上一篇关于contiki 的timer的文章翻译为中文,让自己在学习的时候,更方便点.文中有许多不是很通顺的地方,将就吧. Timers Contiki系统提供了一套时 ...
- Live555 实战之框架简单介绍
作者:咕唧咕唧liukun321 来自:http://blog.csdn.net/liukun321 上一篇文章简要介绍了怎样以共享库的方式交叉编译Live555,今天再来介绍live源代码框架. 先 ...
- MongoDB[mark]总忘记它们是干啥的
MongoDB集群包括一定数量的mongod(分片存储数据).mongos(路由处理).config server(配置节点).clients(客户端).arbiter(仲裁节点:为了选举某个分片存储 ...
- Android ActionBar详解(一):ActionBar概述及其创建
在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使 ...
- ASP.net获取当前页面的文件名,参数,域名等方法
ASP.net后台获取当前页面的文件名 System.IO.Path.GetFileName(Request.Path).ToString(); 获取当前页面文件名,参数,域名等方法 假设当前页完整地 ...
- jQuery之.html()和.text()区别
.html()//获取标签和内容 .text()//只获取内容