正则表达式及grep过滤工具的简单介绍
regexp: basic regexp:基本正则表达式 extended regexp:扩展正则表达式 通过使用正则表达式,可以: 1、测试字符串内的模式; 2、可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它 3、基于模式匹配从字符串中提取字符串或删除被模式匹配到的字符串 基本正则表达式 (basic regexp):元字符: 字符匹配: .:匹配任意单个字符 []:指定范围内的任意单个字符 [^]:指定范围外的任意单个字符 匹配次数(贪婪模式) *:匹配其前面的字符任意次 .*:任意长度的任意字符 ?:匹配其前的字符0次或1次 {m,n}:指定其前面的字符至少出现m次,至多出现n次 {m,}:指定其前面的字符至少出现m次,最多不限 位置锚定符: ^:锚定行首, $:锚定行尾 ^$:锚定空白行 &;:锚定词首 例如:grep "&;r..t" /etc/passwd &;:锚定词尾 例如:grep "r..t&;" /etc/passwd ():分组 引用: 1: 第一个左括号以及与之对应的右括号包含的所有内容 2: 第二个左括号以及与之对应的右括号包含的所有内容 扩展正则表达式 (extended regexp):字符匹配: .:匹配任意单个字符 []:指定范围内的任意单个字符 [^]:指定范围外的任意单个字符 次数匹配: *:匹配其前面的字符任意次 ?:匹配其前的字符0次或1次 +:匹配其前面的字符至少1次 {m,n}: 位置锚定符: ^:锚定行首, $:锚定行尾 ^$:锚定空白行 &;:锚定词首 例如:grep "&;r..t" /etc/passwd &;:锚定词尾 例如:grep "r..t&;" /etc/passwd ():分组 引用:1,2 .... 1: 第一个左括号以及与之对应的右括号包含的所有内容 2: 第二个左括号以及与之对应的右括号包含的所有内容 |:或者 例如: a|b :a或者b C|cat :C或cat (C|c)at:Cat或cat grep:根据模式搜索文本,并将符合模式的文本行显示出来。 grep [options] PATTERN file ... 例如:显示/etc/passwd文件下包含了root字符串的行:grep 'root' /etc/passwd grep选项: -i:忽略大小写 --color:加上颜色 -v:反向查找 即显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串 -E:使用扩展正则表达式 -A:表示当某行被grep所指定的模式匹配到以后,不但显示这一行,还显示这一行的后几行。通常后面跟数值 -B:表示当某行被grep所指定的模式匹配到以后,不但显示这一行,还显示这一行的前几行。通常后面跟数值 -C:表示当某行被grep所指定的模式匹配到以后,不但显示这一行,还显示这一行的前后几行。通常后面跟数值 示例: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |