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<显示行数& ...
随机推荐
- vs2010 suite integration toolkit execution
原因是UltraDeamen的问题,重新换个WinMount来解压ISO文件.完美安装运行
- list append 总是复制前面的参数,而不复制最后一个参数
append 总是复制前面的参数,而不复制最后一个参数 (define a1 '(1 2 3)) (define a2 '(a b c)) (define x (append a1 a2)) x ; ...
- (转)PHP zval内存回收机制和refcount_gc和is_ref_gc
出处 : http://blog.sina.com.cn/s/blog_75a2f94f0101gygh.html 对于PHP这种需要同时处理多个请求的程序来说,申请和释放内存的时候应该慎之又慎,一不 ...
- BZOJ1689: [Usaco2005 Open] Muddy roads
1689: [Usaco2005 Open] Muddy roads Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 147 Solved: 107[Su ...
- glibc的了解,对内核的封装
glibc除了提供最底层的C运行库,还封装了kernel提供的API,程序通过glibc进行系统调用( syscall). 应用层面的C库,比如OpenSSL库: /usr/include/opens ...
- 2014.7.7 模拟赛【小K的农场】
3.小K的农场(farm.pas/cpp/c) [题目描述] 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三 ...
- C# 图结构操作
仿造<<Java常用算法手册>>里面对的算法,使用C#实现了一遍. 理论知识我就不讲解了,在这本书里面已经写的非常完美! 代码如何下: using System; using ...
- java DI 框架spring(web)、Guice(web)、Dagger&Dagger2(android)
java DI 框架spring(web).Guice(web).Dagger&Dagger2(android) (待续...)
- http接口测试浏览器插件
http接口测试浏览器插件: Chrome: https://chrome.google.com/webstore/detail/chrome-poster/cdjfedloinmbppobahmon ...
- WebApi2官网学习记录---单元测试
如果没有对应的web api模板,首先使用nuget进行安装 例子1: ProductController 是以硬编码的方式使用StoreAppContext类的实例,可以使用依赖注入模式,在外部指定 ...