使用正则表达式
发布时间:2020-12-14 01:25:08 所属栏目:百科 来源:网络整理
导读:本文节选自:http://www.csdn.net/article/2009-12-31/5895,并有稍微修正。 使用正则表达式 您可以使用正则表达式做很多事情。在以下的列表中,您可以找到一些最普通、最常用的正则表达式的例子。 * ^:表示文本串必须在一行的开头。所以,当查找行的开头只
本文节选自:http://www.csdn.net/article/2009-12-31/5895,并有稍微修正。
使用正则表达式 您可以使用正则表达式做很多事情。在以下的列表中,您可以找到一些最普通、最常用的正则表达式的例子。 * ^:表示文本串必须在一行的开头。所以,当查找行的开头只为“hosts”的行,可以使用命令:grep -ls '^hosts' * $:代表了一行的结尾。所以,当查找行的结尾只为“hosts”的行,可以使用命令:grep -ls 'hosts$' * 你可以在一个正则表达式中结合^和$,去查找仅仅包含"yes"的行,使用的命令为grep -ls '^yes$' * .: 一个可以指代除了换行符以外任意字符的通配符。为了查找包含tex、tux、tox或者tix的行,可以使用:grep -ls 't.x' * [ ]:表示在一个正则表达式中,方括号之间的字符是可选的。为了查找名字为pinda或者linda的用户,可以使用命令:grep -ls '[pl]inda' * [^ ]:忽略掉方括号中^之后的所有字符。为了查找包含文本linda的行,并忽略掉其中仅包含linda或者pinda的行,命令为:grep -ls '[^pl]inda' * -:代表一类或者一个范围内的字符。在像tr这样的命令中,这是非常有用的。以下的命令可以将所有的小写字母转为大写字母:tr a-z A-Z < mytext。同样地,你可以使用正则表达式grep -ls '^0-9'去查找其中有一些行是以数字开头的文件。 * &; 和 &;:查找一个字的开头或者结尾的模式。查找行的开头的字以"san"为起始的命令为: grep &;san< code>。这些正则表达式有两个缺点—他们并不查找以指定的正则表达式开头的行,并且他们并不被所有的工具所支持。但是,vi和grep是支持这种用法的。 * :确保在正则表达式中有特殊含义的字符不被解释。查找以任何字符开始,后面跟着文本"host"的文本串的命令为grep -ls '.host'。而如果你需要查找以点为第一个字符,紧接着为"host"的文本串,可以用命令:grep -ls '.host' 这些正则表达式可以帮助您找到包含特定文本串的字。您也可以使用正则表达式去指定,在一个字中,该字符串出现的频率。比如,您可以使用正则表达式去搜索刚好包含用户名"linda"三次的文件。为了达到这一目的,您需要使用正则表达式的重复算子,并保证整个正则表达式位于引号中。没有引号的话,您可能会导致shell去解释您的重复算子。 最重要的重复算子的列表如下: * *:表示前述的正则表达式可能出现一次、多次或者根本不出现。注意:不要和shell中的*混淆—在shell中,*表示任意字符,而在正则表达式中,*表示之前的正则表达式可能存在。 * ?:表示在该位置可能是一个字符(但并不是必须是)。例如,同时查找color和colour的命令为:grep -ls 'colo.r' * +:表示之前的字符或者正则表达式至少要出现一次 * {n}:表示之前的字符或者正则表达式至少要出现n次。当你查找一个介于100到999之间的数字时,这是很有用的:grep -ls '0-9{3}' 完! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |