grep;egrep;fgrep
-1 使用场景:搜索定位内容并输出(所在行)
-2 三者区别:
--1 grep 默认支持普通正则
--2 egrep 默认支持扩展正则 等同于 grep -E
--3 fgrep 速度最快,不支持正则表达式
-3 使用格式:grep 参数 匹配式 文件
-4 参数:可合并
-5 匹配式:-1 需用引号 -2 支持正则表达式
-6 具体使用方法:
--1 常用参数
--1 -v 反选
eg:grep -v '^#' /etc/inittab
#删除所有注释行,输出剩余行
--2 -i 忽略匹配内容大小写
--3 E 启用扩展正则表达式(匹配模式可调用扩展正则表达式功能)
eg:grep -iE "^(a|ab|c)" /home/test
#输出以a或者A,ab(任何大小写组合),c或者C开头的行
--4 -o 只显示匹配到的内容,而不是所在行
--5 --color=auto 利用颜色凸显匹配内容
--6 -A n 显示匹配行+匹配行后面的n行
-B n 显示匹配行+匹配行前面的n行
-C n 显示匹配行+匹配行前面的n行+匹配行后面的n行(即A+B参数的合并)
--7 -n 行首加入行号
eg:grep -n "^$" test
#将空白行的行号显示出来
--8 -w 匹配范围限定为词
eg:cat goface.txt
goface
gofaceme
grep ’goface’ goface.txt
goface
gofaceme
grep -w ’goface’ goface.txt
goface
--9 -R 递归匹配
--2 正则表达式
--1 ^ 锚定行守或者[^]取反
--2 $ 锚定行尾
eg:^和$组合
grep -v '^$' test
#删除所有空行,输出剩余行
--3 () 分组
--4 | 或
eg: ()和|组合
egrep '^(a|ab|c)' /home/test
#匹配a或者ab或者c开头的行
--5 . 代表一个任意字符
--6 * 代表前面紧邻的0或多个匹配
? 代表前面紧邻的0或1个匹配
+ 代表前面紧邻的1或多个匹配
--7 {n} 代表前面紧邻的n个匹配
{n,}代表前面紧邻的至少n个匹配
{,n}代表前面紧邻的至多n个匹配
eg:
ifconfig | egrep -o 'addr:([0-9]{1,3}\.){3}[0-9]{1,3}' | grep -v "127.0.0.1"
#获取本地网卡ip
([0-9]{1,3}匹配任意1-3位数的数字
\.匹配小数点
{3} 匹配三组任意1-3位数+小数点
--8 \<或者\> 锚定词首或者词尾,可单独使用
--9 字符集
[:digit:] : 所有数字, 相当于0-9 eg:grep '[[:digit:]]' 匹配所有单个数字,[:digit:]表明0-9,[[:digit:]]表明[0-9],所以即匹配0-9的任意单个数字
[:lower:]:所有的小写字母,相当于a-z
[:upper:]:所有的大写字母,相当于A-Z
[:alpha:]: 所有的字母,相当于a-z,A-Z
[:alnum:]: 相当于0-9a-zA-Z
[:space:]: 空白字符
[:punct:]:所有标点符号
--3 关于shell通配符、元字符和正则表达式
通配符、元字符和正则表达式是完全不同的东西,这也是为什么最好需要将grep所匹配的内容用单引号''括起的原因,具体解释如下:
例如echo '$PATH' | grep --color=auto '\$PATH' 则输出$PATH
echo '$PATH' | grep --color=auto "\$PATH" 则不会输出任何东西
解析:
--1
针对 echo '$PATH',首先shell解释器解读单引号',获悉之后内容强制转义得$PATH,利用|传导给grep之后,shell解释器看到单引号',得知
此处命令完全交由grep管理,则grep采用正则表达式进行处理,按照正则的处理方式看到\进行转义,将本来是锚定尾部的$,转义成普通字符$,
所以输出$PATH
--2
而当使用双引号的时候,shell解释器会先一步将匹配项进行解析,看到转义字符\,将本来是定位变量的$,转义成普通字符$,得到的结果是
$PATH,然后将$PATH交给grep进行处理,grep利用正则处理,此时$前因为没有了转义字符,故被grep认为是锚定尾部,故没法匹配,什么也
没有输出
grep;egrep;fgrep的更多相关文章
- grep, egrep, fgrep笔记
grep, egrep, fgrep grep: 根据模式搜索文本,并将符合模式的文本行显示出来.Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PATT ...
- grep egrep fgrep命令
一.grep.egrep.fgrep命令 本文中主要介绍了linux系统下grep egrep fgrep命令和正则表达式的基本参数和使用格式.方法.(注释:文中fg代表例子,) 1.1.基本定义: ...
- 【转载】grep,egrep,fgrep详解
[转载自]http://blog.csdn.net/homking/article/details/6000711 egrep 等价于 grep -E fgrep 等价于 grep -F grep - ...
- 【Linux相识相知】文本处理工具之grep\egrep\fgrep及正则表达式
常说Linux上有文本处理的三剑客,grep.sed和awk,本文就grep做出详细的描述,并引出正则表达式. grep NAME:打印模式匹配的行 SYNOPISIS: grep [OPTIONS] ...
- grep, egrep, fgrep - 打印匹配给定模式的行
总览 SYNOPSIS grep [options] PATTERN [FILE...] grep [options] [-e PATTERN | -f FILE] [FILE...] 描述 DESC ...
- Shell命令-文件及内容处理之grep(egrep)、join
文件及内容处理 - grep(egrep).join 1. grep(egrep):文本过滤工具 grep(egrep)命令的功能说明 grep命令是Linux系统中最重要的命令之一,其功能是从文本文 ...
- grep/pgrep/egrep/fgrep
Differences between grep, pgrep, egrep, and fgrep (Linux): grep grep is an acronym that stands for & ...
- Shell的egrep、grep、fgrep命令的使用
Linux egrep 命令用于在文件内查找指定的字符串.与grep-E使用语法及参数相似,不同点在于解读字符串的方法. 语法: egrep [范本模式] [文件或目录] 参数说明: [范本模式]:查 ...
- 文本处理三剑客之 grep/egrep
grep:文本过滤工具 支持BRE egrep: 支持ERE fgrep: 不支持正则 作用:根据用户指定的“模式”,对目标文本逐行进行匹配检查,打印匹配到的行 模式:由正则表达式字符及文本字符所编写 ...
随机推荐
- 关于PowerShell中的命令的别名
cmdlets的别名,有利于使用传统的cmd的方式 或者使用 bash的方式的人员,更加方便的使用使用频率较高的命令. 以下是从 别名中获取的内置的别名. PS C:\> Get-Alias * ...
- IOS回调机制——代理,通知中心以及Block
Xcode5.0正式版 IOS7和Xcode5正式版在昨天正式可以下载.IOS7不多说了,交互设计,界面风格,操作的简化程度都属于比较领先的水平. 这里来说说Xcode5正式版,和以前的Xcode5测 ...
- hihoCoder 1092 : Have Lunch Together
题目大意:小hi和小ho去咖啡厅喝咖啡,咖啡厅可以看作是n * m的矩阵,每个点要么为空,要么被人.障碍物.椅子所占据,小hi和小ho想要找两个相邻的椅子.起初两个人都在同一个点,求两人到达满足要求的 ...
- <转载>僵尸进程
转载http://www.cnblogs.com/scrat/archive/2012/06/25/2560904.html 什么是僵尸进程 僵尸进程是指它的父进程已经退出(父进程没有等待(调用wai ...
- batch 批处理获取系统时间
文件test.bat,内容命令如下: @echo off set filename=%,%-%,%-%,% %,%:%,%:%,% echo %filename% pause
- 【转】Linux下socket keep alive讲解
[需求]不影响服务器处理的前提下,检测客户端程序是否被强制终了.[现状]服务器端和客户端的Socket都设定了keepalive属性.服务器端设定了探测次数等参数,客户端.服务器只是打开了keepal ...
- python高级编程(第12章:优化学习)2
#优化策略 #3个原则 """ 1a:寻找其他原因:确定第三方服务器或资源不是问题所在 2a:度量硬件:确定资源足够用 3a:编写速度测试:创建带有速度要求的场景 &qu ...
- 话说GET与POST那点恩怨
看过很多人写GET和POST之间的区别,为什么这么多人关注它们呢?因为它们是最常用的两种HTTP方法,之间有很多相同之处,也存在非常大的不同.首先了解一下HTTP方法: 什么是HTTP? 超文 ...
- html_day1
第一天学习,了解到html的结构和语法. html的语法: 1.所有的html标签都要放在<>尖括号里. 2.标签不分大小写 建议小写 3.标签中的属性与标签名之间要有一个空格,如多个 ...
- JavaScript ----------- 组合继承
继承 实现继承:继承实际的方法.ECMAScript 只支持实现继承,而且其实现基础主要是依靠原型链来实现的. 基本思想是:利用原型来实现一个引用类型继承另外一个引用类型的属性和方法. 原型 - 构造 ...