grep 及 正则表达式

原创 2016年05月12日 21:06:45

文本查找的需要:

grep:根据模式搜索文本,并将符合模式的文本行显示出来。
Pattern:文本字符和正则表达式的元字符组合而成的匹配条件

grep [options] PATTERN [FILES]

  1. -i 忽略大小写
  2. –color 显示标注颜色
  3. -v 显示没有被模式匹配到的行
  4. -o 只显示被匹配到的字符串

*:任意长度的任意字符
?:任意单个字符
[]:指定范围内的
[^]:指定范围外的

正则表达式(regular expression)(REGEXP)

元字符:
.: 匹配任意单个字符
?:任意单个字符
[]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符
字符集合:[:digit:]数字,[:lower:]小写字母,[:upper:]大写字母,[:punct:]标点符号,[:space:]空格,[:alpha:]所有字母,[:alnum:]字母数字下划线,

匹配次数(贪婪模式:尽可能长的去匹配):
*:匹配其前面的字符任意次
a,ab,aab,acb,adb,amnb
a*b
只能匹配到:b,ab,aab

.*:匹配任意长度的任意字符
能匹配到:ab,aab,acb,adb,amnb

\?:匹配其前面的字符1次或0次:

{m,n}:匹配其前面的字符至少m次,至多n次

位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符前面的任意内容必须出现在行尾
^$:空白行

\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
>或\b:锚定词尾,其前面的任意字符必须作为单词尾部出现

分组:
()
(ab)*:包含任意个ab的字符串。
\1:后向引用

grep:使用基本正则表达式定义的模式来过滤文本的命令:
-E:使用扩展正则表达式
-A (数值n):显示被匹配到的行以及其下面的n行
-B (数值n):显示被匹配到的行以及其上面的n行
-C (数值n):显示被匹配到的行以及其上面的n行和下面的n行

扩展正则表达式

字符匹配:
.:
[]:
[^]:

次数匹配:
*:其前字符任意次
?:其前字符0次或1次
+:匹配其前字符至少1次
{m,n}(无需使用反斜线):匹配其前面的字符至少m次,至多n次

位置锚定:
^:
$:
\<:
>:

分组:
():分组
\1,\2,\3,…

或者
|:or的意思
(C|c)at:小写或者大写C后接着at。
找出1-255之间的数字:
$:\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])>

grep -E = egrep
$:ipconfig | egrep –color

grep,egrep,
fgrep:(fast)不支持 正则表达式

版权声明:本文为博主原创文章,转载请注明出处,谢谢配合!

相关文章推荐

grep与正则表达式

  • 2014年04月21日 22:35
  • 247KB
  • 下载

Linux中grep命令,用或的关系查询多个字符串,正则表达式基础说明

使用 grep 'word1|word2' 文件名  这样的命令是不对的! 应该使用如下的命令: 1,grep -E 'word1|word2' 文件名 2,egrep 'wor...
  • lkforce
  • lkforce
  • 2016年10月19日 18:52
  • 5672

linux 下利用ls grep 和正则表达式实现目录和文件的分开显示

b9.html   要列出当前目录下所有的文件名和目录名直接使用ls命令即可。 但如何只列出文件名而不列出目录呢? 查遍了ls 的帮助,也没看到有这个现成的选项。 幸好这个问题还是比较常见...

grep命令和正则表达式

本文讲解grep命令和简单的正则表达式应用。格式:grep [options] 'PATTERN' file,... --color=auto grep Boot /etc/rc.d/r...

grep 正则表达式说明

首先正则表达式分为三类(man grep可以看到,分别是basic RegExs,extended RegExs,perl RegExs) 则表达式:在计算机科学中,是指一个用来描述或者...

Unix grep正则表达式元字符

grep正则表达式元字符集(基本集)   ^ 锚定行的开始 如:\'^grep\'匹配所有以grep开头的行。 $ 锚定行的结束 如:\'grep$\'匹配所有以grep结尾的行。 匹配一...
  • colddie
  • colddie
  • 2012年02月03日 15:49
  • 954

grep及正则表达式

grep, egrep, fgrep grep: 根据模式搜索文本,并将符合模式的文本行显示出来。 Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [...

Linux学习日记--基础命令(6)--grep及正则表达式

grep: Global search REgular expression and Print out the line.         作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行...
  • openex
  • openex
  • 2015年08月27日 15:40
  • 222

grep和正则表达式

linux系统下的正则表达式

RHEL 7 (134) 正则表达式中的GREP

通配符 在shell 当中用某些符号来表示一类字符,  ?表示一个任意字符  * 表示任意多个的任意字符 [] 表示中括号中的任意一个字符 !或者 ^ 表示非  [!0-9]和[^0-9]都...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:grep 及 正则表达式
举报原因:
原因补充:

(最多只允许输入30个字)