grep、egrep与正则表达式常用用法总结
grep:打印匹配给定模式的行 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来);是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局搜索正则表达式并打印,它的使用权限是所有用户。
格式:
常用选项:
各选项简单示例 :
正则表达式 定义: 正则表达式(Regular Expression)就是处理字符串的方法,它是以“行”为单位来进行字符串的处理行为,正则表达式通过一些特殊字符的辅助,可以让用户轻易达到查找、替换、删除一行或多行文字字符串。
组成: 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
元字符(Meta-Characters)是正则表达式中具有特殊意义的专用字符,用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。
应用: 正则表达式并不是一个工具程序,而是一种字符串处理的标准依据,如果你想要以正则表达式的方式处理字符串,就得要使用支持正则表达式的工具程序才行,这类的工具程序很多,如vi,grep,sed,awk等工具。
正则表达式与通配符区别 通配符一般只用于文件名匹配,它是由shell解析的;正则表达式是用来匹配字符串的,般用在工具软件(grep、awk、sed等)或者支持正则的语言(javascript、perl、java、c++等)进行字符串处理时,它是有使用它的工具软件或者是语言的库模块来解释。
egrep正则表达式元字符: 单个字符的元字符: 在字符集合中定义一个区间。如[A-Za-z]
数量元字符:用于实现指定其前面的字符所能够出现的次数
.*:任意长度的任意字符;工作于贪婪模式:尽可能多的去匹配
位置锚定元字符: $: 行尾锚定: &;: 单词分界符,单词开头,等同b,出现于单词左侧 &;: 单词分界符,单词结尾,等同b
引用: 或者: a|b: a或者b
shell转义符 有时候,我们想让 通配符,或者元字符 变成普通字符,不需要使用它。那么这里我们就需要用到转义符了。 shell提供转义符有三种。
实例:
可以看到,加入了转义符 “*”已经失去了通配符意义了。 表达式全集:
shell解析脚本的过程 大家可能会想特殊字符,通配符,那么 shell在得到一条命令,到达是怎么样处理的呢?我们看下下面的图: 如果用双引号包括起来,shell检测跳过了1-4步和9-10步,单引号包括起来,shell检测就会跳过了1-10步。也就是说,双引号 只经过参数扩展、命令代换和算术代换就可以送入执行步骤,而单引号转义符直接会被送入执行步骤。而且,无论是双引号转义符还是单引号转义符在执行的时候能够告诉各个命令自身内部是一体的,但是其本身在执行时是并不是命令中文本的一部分。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |