linux命令系列 grep
grep, egrep, fgrep - print lines matching a pattern
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,grep全称是Global Regular Expression Print
1. 常用选项:
-E, --extended-regexp: Interpret PATTERN as an extended regular expression. # 开启扩展(Extend)的正则表达式
-i, --ignore-case: Ignore case distinctions in both the PATTERN and the input files. # 忽略大小写
-v, --invert-match: Invert the sense of matching, to select non-matching lines. # 反过来,只打印没有匹配的,而匹配的反而不打印
-n, --line-number: Prefix each line of output with the 1-based line number within its input file. # 显示行号
-w, --word-regexp # 被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word
constituent character. Similarly, it must be either at the end of the line or followed by a non-word constituent character. Word-constituent characters are letters, digits, and the
underscore.
-c, --count: Suppress normal output; instead print a count of matching lines for each input file. # 显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o, --only-matching: Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. # 只显示被模式匹配到的字符串。
-A NUM, --after-context=NUM: Print NUM lines of trailing context after matching lines. # 显示匹配到的字符串所在的行及其后NUM行
-B NUM, --before-context=NUM: Print NUM lines of leading context before matching lines. # 显示匹配到的字符串所在的行及其前NUM行
-C NUM, -NUM, --context=NUM: Print NUM lines of output context. # 显示匹配到的字符串所在的行及其前后各NUM行
2. 模式部分:
(a)基本正则表达式:
匹配字符
. : 任意一个字符
[abc] : 表示匹配[abc]中任意一个字符
[a-zA-Z] : 匹配a-z或A-Z之间任意一个字符
[^123] : 匹配123之外的任意一个字符
对于常用的字符集,系统定义如下:
[a-zA-Z] <=> [[:alpha:]]
[0-9] <=> [[:digit:]]
[a-zA-Z0-9] <=> [[:alnum:]]
tab,space <=> [[:space:]]
[A-Z] <=> [[:upper:]]
[a-Z] <=> [[:lower:]]
标点符号 <=> [[:punct:]]
匹配次数:
\{m,n\} : 匹配其前出现的字符至少m次,至多n次
\? : 匹配其前出现的内容0次或1次,等价于\{0,1\}
* : 匹配其前出现的内容任意次,等价于\{0,\} ,所以".*"表示任意字符任意次
位置锚定:
^ : 锚定行首
$ : 锚定行尾。 常用技巧 "^$"匹配空白行
\b或者\<: 锚定单词的词首。 如"\blike" 不会匹配alike,但是会匹配liker
\b或者\> : 锚定单词的词尾。 如\blike\b 不会匹配alike或者liker,只会匹配like
\B : 与\b作用相反
分组及引用:
\(string\) : 将string作为一个整体方便后面引用
\n : 引用第n个左括号及其对应的右括号所匹配的内容
3. 扩展的(Extend)正则表达式:
匹配字符: 这部分和基本正则表达式一致
匹配次数:
* : 和基本正则表达式一致
? : 相比基本正则表达式没有\
{m,n} : 相比基本正则没有\
+ : 匹配其前面的字符至少一次,相当于{1,}
位置锚定: 这部分和基本正则表达式一致
分组及引用:
(string) : 相比基本正则表达式没有\
\n : 和正则表达式一样
或者:
a|b : 匹配a或者b, 注意a是指 | 的左边的整体,b也同理,比如C|cat,表示的是C或者cat,而不是Cat或者cat,如果要表示Cat或者cat,则应该写为(C|c)at。(String)除了用于引用还用于分组
注1:默认情况下,正则表达式的匹配工作在贪婪模式下,也就是说它会尽可能长地去匹配,比如某一行有字符串 abacb,如果搜索内容为 "a.*b" 那么会直接匹配 abacb这个串,而不会只匹配ab或acb。
注2:所有的正则字符,如 [ 、* 、( 等,若要搜索 * ,而不是想把 * 解释为重复先前字符任意次,可以使用 \* 来转义。
转载于:https://www.cnblogs.com/z-joshua/p/10043357.html
linux命令系列 grep相关推荐
- (5)ps详解 (每周一个linux命令系列)
(5)ps详解 (每周一个linux命令系列) linux命令 ps详解 引言:今天的命令是用来看进程状态的ps命令 ps 我们先看man ps ps - report a snapshot of t ...
- linux命令系列-zip(压缩打包)
转自:https://www.jianshu.com/p/311b28456ff5 linux命令系列-zip(压缩打包) 原文地址http://www.daileinote.com/computer ...
- (4)top详解 (每周一个linux命令系列)
(4)top详解 (每周一个linux命令系列) linux命令 top详解 引言:今天的命令是用来看cpu信息的top top 我们先看man top top - display Linux pro ...
- Linux命令之grep用法
Linux命令之grep用法 Usage: grep [OPTION]- PATTERN [FILE]- 用法: grep [选项]-模式 [文件]. Search for PATTERN in ea ...
- Linux命令之 —— grep \ls \ ll \ sed \ bg fg \ ipset \ wc \ ifconfig \ awk
0. grep命令 1. Linux ls -ld 1 2. Linux 中ls -l // ll 命令详解 (7个字段):文件属性 1 3. shell中的if判断 4. Linux中 > ...
- Linux 命令之 grep -- 强大的文本搜索工具/正则表达式搜索
文章目录 一.命令介绍 二.grep 的三种形式 三.常用选项 四.正则表达式 五.参考示例 在指定的文件中查找指定的关键词 查看指定文件中含有特定关键词的文本行 查看指定文件中所有包含数字的行 在指 ...
- linux命令之grep 命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- linux 命令:grep、egrep、ngrep、kill、pkill、killall
1.grep 帮助:grep --help 用法:grep [OPTION]...patterns[FILE]... 示例:grep -i 'hello world' menu.h main.c ...
- linux 测试网络_Linux后台开发:Linux命令系列18-ping测试网络
ping命令是用于检测网络故障的常用命令,可以用来测试一台主机到另外一台主机的网络是否连通. 语法 ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t][主机名称或I ...
- linux命令grep如何使用,Linux命令之grep命令简单使用
正则表达特殊符号 WeChat Image_20181222173728.png grep命令-字符串搜寻 -a :将 binary 档案以 text 档案的方式搜寻数据 -c :计算找到 '搜寻字符 ...
最新文章
- 根据双眼的坐标对齐人脸Python实现
- java金钱千分位处理_java对金额的处理,保留两位小数、千分位符
- 无线抄表免费透传云服务器,两个WIFI模块USR-WIFI232-B2连接有人云实现远程一对一透传...
- HarmonyOS之LED灯和振动器Vibrator的功能和使用
- java反射 获取局部变量_Java反射:如何获取变量的名称?
- 女士细线毛衣起多少针_从起针到缝合,教你织毛衣的各种要点(详细教程)
- mysql 游标的简单_mysql 简单游标
- selenium上传文件方法
- 计算机网络课程设计即时通讯,计算机网络课程设计报告-基于LAN的即时通信软件.doc...
- 一次library cache pin故障的解决过程
- Atitit.ide eclipse编译速度慢的解决
- 清华linux网络编程视频,清华大学视频课件:基于Linux的C++(自主模式)
- matlab 求导的一个简单程序
- 黑龙江省谷歌高清卫星地图下载
- 搭建 IPv6 Web服务器
- 字节架构师:来说说 Kafka 的消费者客户端详解,你都搞懂了吗。
- e1000e_probe 其实是e1000_probe
- python获取当日、本周、本月、昨日、上周、上月时间
- Java面试题集(86-115)
- 怎样学Java才是硬道理
热门文章
- 计算机低级格式化,硬盘格式化之低级格式化
- win10文件误删除怎么恢复,不能错过的恢复方法
- 怎么设置计算机语言中文,Windows10 IE11浏览器怎么把默认语言设置为中文
- 5款自动爬取数据的神器!
- 批量采集抓取淘宝宝贝上传,采集商品软件
- stm32驱动TFTLCD液晶屏显示图片+汉字(快速上手,只教怎么用,不讲原理!)
- 阿里企业邮箱产品优势、功能、版本介绍
- 中国20强游戏公司2022上半年年报分析:复合因素下业绩增长承压,海外新兴市场蕴含增长新趋势
- Android Studio使用WIFI调试应用
- 人工智能相关专利分析: 会比其他常见的计算机软硬件领域更难申请吗?