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<显示行数& ...
随机推荐
- BrainFuck语言生成器
还要求生成的代码比较快和短. 当然stackexchange上面给出了实现,java的 http://codegolf.stackexchange.com/questions/5418/brainfu ...
- logstash 处理tomcat access报ArgumentError: comparison of String with 5 failed
<pre name="code" class="html"> 10.168.102.19 - - [22/Sep/2016:20:35:11 +08 ...
- DBA避坑宝典:Oracle运维中的那些事儿
对于Oracle运维中的那些事儿,我的最终目的:不是比谁更惨,而是能够从中吸取经验和教训. 从我的理解来看,我会从下面的几个方面来进行说明DBA运维中的一些事儿. 每个部分都是非常关键的,缺一不可,而 ...
- 前端开发利器—FIDDLER 转
http://www.cnblogs.com/yuzhongwusan/archive/2012/07/20/2601306.html 前端开发利器—FIDDLER 1.Fiddler相对其他调试工具 ...
- Web Service工作原理
Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...
- QT实现透明效果的按钮
QPushButton { color: rgb(0,88,152) background-color: rgba(97%,80%,9%,50%)}
- spring+hibernate整合:报错org.hibernate.HibernateException: No Session found for current thread
spring+hibernate整合:报错信息如下 org.hibernate.HibernateException: No Session found for current thread at o ...
- Mysql配置调优(转自阿铭论坛)
Mysql配置文件my.cnf参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一 ...
- 利用iptables实现基于端口的网络流量统计
如何统计某个应用的网络流量(包括网络流入量和网络流出量)问题,可以转换成如何基于端口号进行网络流量统计的问题.大部分网络应用程序都是传输层及以上的协议,因此基于端口号(tcp, udp)统计网络流量基 ...
- python-socket 粘包问题
解决粘包的问题: 1.服务端在发送数据之前,先把发送数据的长度告诉客户端,要发送多少数据,然后客户端根据这个数据的长度循环接收就OK 传输过程: 服务端: 1.send #数据长度 ...