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的使用方法并结合正则表达式,我们便可以在这个一切皆文件的系统中快速的找到我们想要的信息,这便提高了办事效率,节约了时间。