Linux中的grep、egrep及相应的正则表达式和用法
在Linux系统当中,处理文本有三个常用的工具,俗称文本处理三剑客,grep就是其中之一。
grep是一种强大的文本搜索工具,它的全称是:Globally search a Regular Expression and Print。工作原理是基于正则表达式引擎按给定的“pattern”对文本进行搜索过滤操作,并把匹配的行打印出来。因此了解要grep的用法我们可以从两方面着手,1:grep命令的用法,2:正则表达式。
1,grep命令的使用方法
首先我们可以使用man命令查看一下grep的使用帮助。
第一种使用格式为:grep [OPTIONS] PATTERN [FILE...]
使用示例:
可以看出它的作用是:根据“root(过滤条件)”对目标文本逐行进行匹配检查;打印出符合条件的行。
常用选项 --color=auto :对匹配到的文本着色后高亮显示;
使用示例:
因为在centOS7中,shell的环境变量配置文件中已经定义了别名grep=“grep --color=auto”(可以通过type命令查看),所以演示时我们先执行撤销别名操作。
看以看出这种方式显示结果更为直观,因此下面的示例中我们使用的grep命令都是已经定义了grep=grep --color=auto的别名。
常用选项 -i:忽略字符大小写;
使用示例:
常用选项 -o:仅显示匹配 到的文本自身;
使用示例:
常用选项 -v, --invert-match:反向匹配;
使用示例:
常用选项 -q, --quiet, --silient:静默模式,不输出任何信息;
使用示例:
常用选项 -A NUM, --after-context=NUM:同时显示匹配到的文本行和它的后NUM行
常用选项 -B NUM, --before-context=NUM:同时显示匹配到的文本行和它的前NUM行
注:被匹配到的一行没有同时显示它的前两行是因为它本身已经是文本的第一行。
常用选项 -C NUM, -NUM, --context=NUM:同时显示匹配到的文本行和它的前后NUM行
第二种使用格式 grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
第一种使用-e选项: -e PATTERN, --regexp=PATTERN:多模式机制;
第二种使用-f选项: f FILE, --file=FILE:FILE为每行包含了一个“pattern”的文本文件,即grep script;
正则表达式:Regular Expression, REGEX
由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意义,而是用于表示控制或通配的功能;
1,基本正则表达式:BRE(Basic Regular Expression)
[[:alpha:]]:表示所有字母,等同于[a-zA-Z]
[[:alnum:]]:表示所有字母和数字,等同于[a-zA-Z0-9]
[[:graph:]]:表示所有非空字符(不包含空格和控制字符)
2)匹配次数:用在要指定其出现次数的字符的后面,作用是限制其前面的字符出现的次数;默认工作于贪婪模式;
*:匹配前面的字符任意次(0,1或多次),那么 .* 可以表示为任意字符出现任意次,即任意长度的任意字符。
3)位置锚定:限制模式所匹配到的文本只能出现于目标文本的具体位置;
\<或\b:词首锚定,用于单词模式的左侧,格式为\<PATTERN, \bPATTERN
\>或\b:词尾锚定,用于单词模式的右侧,格式为PATTERN\>, PATTERN\b
\(PATTERN\):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理;
注意:分组括号中的模式匹配到的字符会被正则表达式引擎自动记录于内部的变量中,这些变量是\1, \2, \3, ...
pat1\(pat2\)pat3\(pat4\(pat5\)pat6\)
\n:模式中第n个左括号以及与之匹配的右括号之间的模式所匹配到的字符串;(不是模式,而是模式匹配的结果)
-E, --extended-regexp:支持使用扩展正则表达式;
-F, --fixed-strings:支持使用固定字符串,不支持正则表达式;
-G, --basic-regexp:支持使用基本正则表达式;
-P, --perl-regexp:支持使用pcre正则表达式;
2,扩展正则表达式:ERE(Extend Regular Express)
{m}:匹配前面的字符m次,等同于基本正则表达式中 \{m\}
{m,n}:匹配其前面的字符至少m次,等同于基本正则表达式中\{m,n\}
{0,n}:最多匹配其前面的字符n次,等同于基本正则表达式中 \{0,n\}
{m,}:最少匹配其前面的字符m次,等同于基本正则表达式中 \{m,\}
(pattern):等同于基本正则表达式中 \(pattern\),引用方式和基本正则表达式相同,都为后向引用:\1, \2, ...
C|cat:表示C或cat,等同于基本正则表达式中的C\|cat
(C|c)at:表示Cat或cat,等同于基本正则表达式中的\(C\|c\)at
转载于:https://blog.51cto.com/puro2016/1748786
Linux中的grep、egrep及相应的正则表达式和用法相关推荐
- linux中的grep和egrep命令,Linux grep和egrep命令
在Linux中,grep是一个非常强大的文本搜索工具,它可以根据用户指定的文本搜索模式对目标文件进行逐行的搜索,然后将被模式匹配到的用户所需要的信息显示出来:那么,egrep呢?从字母组合上看,二者很 ...
- linux grep 排除_如何在Linux中排除Grep?
linux grep 排除 grep is very useful tool used by a lot of tech guys. grep provides different functions ...
- linux使用grep查找文件内容,Linux中使用grep命令搜索文件名及文件内容的方法
这篇文章主要介绍了Linux中使用grep命令搜索文件名及文件内容的方法,同时文中还介绍了将匹配结果高亮显示的方法,相当实用,需要的朋友可以参考下 从文件中搜索并显示文件名 当从多个文件中搜索时,默认 ...
- Unix/Linux 中的 grep 命令
Unix/Linux 中的 grep 命令参数及示例用法 作用 语法 主要参数 示例命令 作用 Grep 筛选器在文件中搜索特定的字符模式,并显示包含该模式的所有行.在文件中搜索的模式称为 正则表达式 ...
- linux mv时间,简介Linux中cp和mv搭配{,}在shel_l当中的用法
简介Linux中cp和mv搭配{,}在shel_l当中的用法 发布时间:2018-01-03 18:02 来源:互联网 当前栏目:web技术类 这篇文章主要介绍了简介Linux中cp和mv搭配{,}在 ...
- linux中egrep的用法,liunx中grep,egrep及相应的正则表达式和用法
正则表达式是linux中重要的一部分,学习正则表达式先要学好grep和egrep的命令使用. 1. grep: grep命令的基本语法格式 grep [OPTION]... 'PATTERN' FIL ...
- linux egrep和grep区别,Linux中的Grep,Egrep和Fgrep有什么区别?
在Unix系统上的一个着名的搜索工具,可以用于搜索任何东西,无论是一个文件,或一行或多行的文件是grep实用程序.它在功能上非常庞大,这可以归因于它支持的大量选项:使用字符串模式或reg-ex模式或基 ...
- linux中的grep和egrep命令,Linux之grep和egrep命令总结
grep / egrep 语法: grep [-cinvABC] 'word' filename -c :打印符合要求的行数 -i :忽略大小写 -n :在输出符合要求的行的同时连同行号一起输出 ...
- linux中grep命令查找目录下,linux中查找grep与find命令的使用
在日常工作中,我们常常会在自己的电脑寻找某些不知道放在哪里的私密文件,通常我们会在资源管理器的搜索栏里输入一些关键字去帮助我们快速去定位查找该文件.在linux系统中也有这样的功能,只不过在linux ...
- llinux文本三剑客之grep、egrep及相应的正则表达式和用法
Linux文本三剑客之grep族以及相应的正则表达式 Grep族是什么? Grep族是linux学习中搜索文本的重要工具,它基于使用正则表达式来快速简洁的搜索你想要查看的文本.是搜索文本的不二之选 什 ...
最新文章
- Linux那些事儿之我是Sysfs(8)一起散散步-pathwalk
- vue-threeJS数据驱动的三维图形可视化
- Linux下配置Node.js环境
- 数控程序中r及q代表什么_邹军:如何利用数学公式编写cnc程序?
- 三种方法绘制雷达图,用最快的时间做出最好看的可视化图表
- 运行Pangolin时提示错误
- ChannelOption.TCP_NODELAY, true-浅谈tcp_nodelay的作用
- 【推荐】会被快速否决的9种求职者.
- ipmitool源码解析(一)——一次带内ipmitool raw data发送过程
- html怎么混合颜色,CSS3 多色混合背景
- 全球及中国手机SAW滤波器行业供需现状及盈利前景预测报告(新版)2022-2027
- APP主流推广的6个方式
- 《基础微积分教材中译版》--11.3偏导数
- 转战pytorch(3)——跟上脚步(以Albert为例)
- 计算机组成原理-chp4-指令系统
- 从输入 URL 到页面加载完成的过程中都发生了什么事情?
- 高等数学公式(第2部分)
- html5制作大小写转换,JavaScript中如何实现大小写转换
- USB Redirector(usb设备共享软件)官方正式版V6.12.0.3230 | USB共享软件下载 | usb redirector是什么软件
- java.util.concurrent 包源码分析之Fork/Join框架