grep , egrep 以及正则表达式
一、什么是正则表示法? 正则表达式:由一类字符书写的模式,其中有些字符不表示字符的字面意义,而是表示控制或通配的功能; 正则表达式分为两类:基本正则表达式和扩展正则表达式; ------------------------------------------------------ 注:本文以grep为例来讲解正则表达式。 (1)基本正则表达式: 字符匹配:
匹配次数:用于对其前面紧邻的字符所能够出现的次数作出限定
位置锚定:
分组:() 后向引用: 模式中,如果使用()实现了分组,在某行文本的检查中,如果()的模式匹配到了某内容,此内容后面的模式中可以被引用;1,2,3模式自左而右,引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容。 文本搜索工具:根据用户指定的“模式(pattern)”对目标文本进行过滤,显示被模式匹配到的行。例如: grep,egrep,fgrep grep:grep [OPTION]... 'PATTERN' FILE... --color 注:?color选项是个非常好的选项,可以让你清楚的明白匹配了那些字符。最好在自己的.bashrc或者.bash_profile文件中加入: 例如:alias grep=grep --color=auto ;(每次grep搜索之后,自动高亮匹配效果了。) 参数说明:
egrep及扩展的正则表达式 grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外grep单独提供了一个扩展命令叫做egrep用来支持扩展正则表达式,这条命令和grep -E等价。 # grep -E 'pattern' file... # egrep 'pattern' file... 虽然一般情况下,基本正则表达式就够用了。特殊情况下,复杂的扩展表达式,可以简化字符串的匹配。 扩展正则表达式的元字符: 字符匹配:用法与grep用法一致; 锚定:用法与grep用法一致 匹配次数限定:
---------------------------------------------注:与grep用法不同的是不加。 分组:()支持后向引用:1,... 或者: a|b: a或者b fgrep fgrep [option] 'string' file... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |