正则表达式(regular expression)
正则表达式是用来在文件中定位文本的一些搜索标准。
正则表达式所采用的一些基本规则如下:
·任何单个字符或一串字符都可以匹配字符本身,例如上面的 “admin” 的例子。
·^ 符号(^)表示一行的开始;$ 符号($)表示一行的结束。
·要搜索特殊字符(例如 $ 符号),需要在这些字符前面加上反斜线(/)。例如, /$就表
示查找 $,而不是一行的末尾。
·点(.)代表任何单个字符。例如,ad..n代表 5 个字符项,前两个字符是 “ad”,最后一个
字符是 “n”。中间两个字符可以是任何字符,但是只能是由两个字符组成。
·任何时候如果正则表达式包含在斜线中(例如 /re/),搜索就是通过文件顺序进行的。如
果正则表达式包含在问号中(例如,?re?),搜索就是通过文件逆序进行的。
·方括号([])表示多个值,减号(-)表示值的范围。例如,[0-9]与 [0123456789]相同,
[a-z]就等效于搜索任何小写字符。如果一个列表的首字符是 ^ 符号,它就匹配不在这个清
单中的任何字符。
表 1. 示例正则表达式
例子 说明
[abc]
匹配 “a”、“b”、“c” 之一
[a-z]
匹配从 “a” 到 “z” 的任何一个小写字符
[A-Z]
匹配从 “A” 到 “Z” 的任何一个大写字符
[0-9]
匹配从 0 到 9 的任何一个数字
[^0-9]
匹配任何除了 0 到 9 数字范围内的任何字符
[-0-9]
匹配从 0 到 9 的任何数字,或者是短横线(-)
[0-9-]
匹配从 0 到 9 的任何数字,或者是短横线(-)
[^-0-9]
匹配除从 0 到 9 的数字和短横线(-)之外的任何字符
[a-zA-Z0-9]
匹配任何字符或数字
grep
grep工具的工作方式是对文件的每一行搜索给定字符串的首次出现。如果找到了这个字符
串,就打印该行的内容;否则就不对该行进行打印。
# grep 匹配字符串 文件名 grep “通配符/元配符” 文件名
-i 忽略大小写的敏感性 / [t,T] -c
-v 逆反,选择那些不 匹配搜索条件的行 -n 加行号作为前缀
fgrep
fgrep会对文件搜索某个字符串,并打印包含这个字符串的所有行的内容。