首页 > 系统服务 > 详细

linux文本处理-grep

时间:2016-03-13 18:16:42      阅读:260      评论:0      收藏:0      [点我收藏+]

grep(globe regular expression and print out the line)是linux文本搜索工具,

man文档解释如下:grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-)is given as file name) for lines containing a match to the given PATTERN.By default, grep prints the matching lines.


grep家族

grep:支持使用基本正则表达式

egrep:支持使用扩展正则表达式,grep -E

fgrep:不支持使用正则表达式,grep -F


grep命令用法:

grep [OPTIONS] PATTERN [FILE...]

常用选项:

--color=auto:对匹配到的文本着色后高亮显示;

-i:忽略字符大小写;

技术分享技术分享

-o:仅显示匹配 到的文本自身;

技术分享

-v, --invert-match:反向匹配;

技术分享

-E:支持扩展的正则表达式;

-q, --quiet, --silient:静默模式,不输出任何信息;

基本正则表达式元字符:

字符匹配:

.:匹配任意单个字符;

技术分享

[ ]:匹配范围内的任意单个字符;

技术分享

[^ ]:匹配范围外的任意单个字符;

技术分享

[:digit:]匹配所有数字

[:lower:]匹配所有小写字母

[:upper:]匹配所有大写字母

[:alpha:]匹配所有字母

[:alnum:]匹配所有字母数字

[:space:]匹配空格

[:punct:]匹配标点符号


匹配次数:

用在要指定其出现的次数的字符后面,用限制其前面的字符要出现的次数;默认工作于贪婪模式;

技术分享

*:匹配前面的字符任意次(0,1或多次);

技术分享

.*:任意长度的任意字符;

技术分享

\+:匹配前面的字符至少1次;

技术分享

\?:匹配前面的0次或1次,即前面的字符可有可无;

技术分享

\{m\}:其前面的字符出现m次,m为非负整数;

技术分享

\{m,n\}:其前面的字符出现m次,m为非负整数;[m,n]

技术分享

\{0,n\}:至多n次;

技术分享

\{m,\}:至少m次;

技术分享


位置锚定

限制使用模式搜索文本,限制模式所匹配到的文本只能出现于目标文本的哪个位置;

技术分享

^:行首锚定;用于模式的最左侧,^PATTERN

技术分享

$:行尾锚定;用于模式的最右侧,PATTERN$

技术分享

^PATTERN$:要让PATTERN完全匹配一整行;

技术分享

^$:空行;不能过滤带空格符或tab符的空行

技术分享

^[[:space:]]*$:可过滤出带空格或tab符的空行

技术分享


分组与引用:

\(PATTERN\):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理;

Note:分组括号中的模式匹配到的字符会被正则表达式引擎自动记录于内部的变量中,这些变量是\1, \2, \3, ...

pat1\(pat2\)pat3\(pat4\(pat5\)pat6\)

\n:模式中第n个左括号以及与之匹配的右括号之间的模式所匹配到的字符串;(不是模式,而是模式匹配的结果)

\1:第一组括号中的pattern匹配到的字符串;

\2:第二组括号中的pattern匹配到的字符串;

技术分享


egrep命令用法:

支持使用扩展正则表达式的grep命令,相当于grep -E;

egrep [OPTIONS] PATTERN [FILE...]

扩展正则表达式的元字符:

字符匹配:

.:任意单个字符

[ ]:范围内的任意单个字符

[^ ]:范围外的任意单个字符

匹配次数:

*:任意次;

?:0次或1次;

+:1次或多次;

{m}:匹配m次;

{m,n}:至少m次,至多n次;

{0,n}

{m,}

位置锚定:

^:行首

$:行尾

\<, \b:词首

\>, \b:词尾

分组及引用:

(pattern):分组,括号中的模式匹配到的字符会被记录于正则表达式引擎内部的变量中;

后向引用:\1, \2, ...

或者:

a|b:a或者b

C|cat:表示C或cat

(C|c)at:表示Cat或cat


本文出自 “liberalism” 博客,请务必保留此出处http://edonkey.blog.51cto.com/887243/1750507

linux文本处理-grep

原文:http://edonkey.blog.51cto.com/887243/1750507

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!