grep,egrep用法

文本搜索工具:grep, egrep
grep: Global search REgular expression and Print out the line.
根据优化指定的“模式(pattern)”对目标文本进行过滤,显示被模式匹配到的行。

语法:grep [OPTION]... 'PATTERN' FILE...

常用选项:
-c 只输出匹配行的个数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
-o 仅显示匹配到的内容
-E 使用扩展正则表达式

-V 显示软件版本信息
使用grep匹配时最好用双引号引起来,防止被系统误认为参数或者特殊命令,也可以匹配多个单词。

正则表达式:由一类字符书写的模式,其中有些字符不表示字符的字面意义,而是表示控制或通配的功能;

分类:
基本正则表达式
扩展正则表达式

基本正则表达式:
字符匹配:
.: 匹配任意单个字符
[]:匹配指定集合中的任意单个字符
[[:digit:]], [0-9]
[[:lower:]], [a-z]
[[:upper:]], [A-Z]
[[:alpha:]], [a-zA-Z]
[[:alnum:]], [0-9a-zA-Z]
[[:space:]]
[[:punct:]]
[^]:匹配指定集合外的任意单个字符

匹配次数:用于对其前面紧邻的字符所能够出现的次数作出限定
test为文本文件
xy
xxy
xxxxy
xxxxxxxxy
y
aby
abbbbbby
abababyab
by
bby

*:匹配其前面的字符人一次,0,1或多次
grep --color x*y test  x出现的次数为>=0次        y ay xxxy
grep --color ax*y test a+ nx + y n>=0  ay axy axxxxy

\?:匹配其前面的字符0次或1次
grep --color 'x\?y' file  y xy xxy aby

\+:匹配其前面的字符至少出现1次
grep --color 'ab\+y' test  a+nb+y n大于等于1  aby abbbbbby abababyab

\{m\}:匹配其前面的字符m次
grep --color 'x\{2\}y' test   nx+y n大于等于2 xxy  xxxxy

\{m,n\}:匹配其前面的字符至少m次之多n次
grep --color 'x\{2,4\}y'  test nx+y  n大于等于2 n小于等于4  xxy xxxxy xxxxxxxxy

位置锚定:
^:行首锚定 写在模式的最左侧
$:行尾锚定 写在模式的最有侧
^$:空白行
\<: 词首锚定,  出现在要查找的单词模式的左侧;\ grep --color '\abababyab

\>:词尾锚定, 出现在要查找的单词模式的右侧;char\>
grep --color 'by\>' test   aby abbbbbby by bby 

\: 匹配单词

分组:\(\)
后向引用:模式中,如果使用\(\)实现了分组,在某行文件的检查中,如果\(\)的模式匹配到了某内容,此内容后面的模式中可以被引用;

grep --color '\(ab\)\{1,\}y' test aby abababyab

grep --color 'ab\{1,\}y' test aby abbbbbby abababyab

grep --color '\(ab\)\{1,\}y\1' test  abababyab


egrep及扩展的正则表达式

扩展正则表达式的元字符:
字符匹配:
.
[]
[^]
匹配次数限定:
*
?: 匹配其前面字符0次或1次;
+:匹配其前面的字符至少1次;
{m}:匹配其前面的字符m次;
{m,n}:{m,}, {0,n}
锚定:
^
$
\<, \>: \b
分组:
()

支持后向引用:\1, \2, ...
或者:
a|b: a或者b
ab|cd:

# grep -E 'pattern' file...
# egrep 'pattern' file...




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28282660/viewspace-1764593/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28282660/viewspace-1764593/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值