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<显示行数& ...
随机推荐
- 为什么memset的第二个参数不把int替换成char
memset是一个经常被用来初始化数组的函数,其定义如下: 1 void * memset ( void * ptr, int value, size_t num ); 它的效果大致是把以ptr为起始 ...
- android中button点击频率控制
public class Utils { private static long lastClickTime; public static boolean isFastDoubleClick() { ...
- netcat
一.概述 netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶.netca ...
- Linux企业级项目实践之网络爬虫(7)——DNS解析
DNS 是Domain Name Service的缩写.域名系统为Internet上的主机分配域名地址和IP地址.IP地址不易于记忆,然而域名地址相比较而言是方便于记忆的.用户如果使用域名地址,当想获 ...
- 数据库 SQL语句优化
温馨提示:本篇内容均来自网上,本人只做了稍微处理,未进行细致研究,仅当做以后不备之需,如若你喜欢可尽情转走. 一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图 ...
- cf442B Andrey and Problem
B. Andrey and Problem time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- Java里的equals总结
前段时间一直在工作中使用Java,由于有一些C++功底,于是简单看了一下Java相关的语法便开始编写代码,结果在创建一个自定义类,并将自定义类放入ArrayList中,之后查找ArrayList是否有 ...
- Struts分页
1.分页的bean类PaginationSupport.java 2.写好后直接在action里面调用,计算当前页显示的数据 3.写一个公用的jsp页面,直接在需要分页的页面include就可以了 ...
- javascript正則表達式 "\b"问题
preface 昨晚在看<javascript权威指南>后.看见作者自己封装一个兼容全部浏览器的山寨HTML5新API classLIst类.自己想了想认为自己也要去玩一下.可是能力还是有 ...
- ewebeditor下利用ckplayer增加html5 (mp4)全平台的支持
学校数字化平台富文本编辑器一直用的ewebeditor,应该说非常的好,支持常用office文档的直接导入,极大的方便了老师们资料的上传,最近在规划整个数字化校园向全平台改版,框架采用bootstra ...