Linux 中 文本查找工具的使用
---2012/02/05
1,grep --global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
2,grep的工作方式:
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
3,grep正则表达式元字符集(基本集)
^:锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$:锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
.:匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
*:匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.*一起用代表任意字符。
[]:匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]:匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\(..\):标记匹配字符,如'\(love\)',love被标记为1。
\<:锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>:锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}:重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\}:重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\}:重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
4,grep的用法
grep [option] -f file (该文件定义了匹配模式);
--color=auto|always (为匹配的字符串加颜色)
-v 取反 (eg:不显示文件中的空白行使用grep -v "^[[:space:]]*$")
-i 不区分字母大小写
-r 在一个目录下递归搜索文件
-A # 显示匹配行及下面#行
-B # 显示匹配行及上面#行
-C # 显示匹配行及上、下#行
-o 只显示匹配字符串,不显示行
下面说一下grep怎样用:
例如,在/etc/passwd文件中找出用户“user1”的详细信息。所用命令:grep "^user1:.*" /etc/passwd.
匹配A、B、C类IP地址的正则表达式:
"\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[01][0-9]|22[0-3])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}\>"
总结:
学会了grep的使用方法并结合正则表达式,我们便可以在这个一切皆文件的系统中快速的找到我们想要的信息,这便提高了办事效率,节约了时间。