培养自己的见解、培养思维

linux命令学习----grep(重要命令)

上一篇 / 下一篇  2011-03-11 10:16:03 / 个人分类:Linux基础及进阶

grep
1、grep一般格式为:
         grep [选项] 基本正则表达式 [文件]
         这里基本正则表达式可为字符串。

2、双引号引用
       在grep命令中输入字符串参数时,最好将其用双引号括起来。例如“mystring”。这样做有两个原因,一是以防被误解为shell命令,二是可以用来查找多个单词组成的字符串,例如:“jet plane”,如果不用双引号将其括起来,那么单词plane将被误认为是一个文件,查询结果将返回“文件不存在”的错误信息。
       在调用变量时,也应该使用双引号,诸如: grep“$MYVAR”文件名,如果不这样,将
没有返回结果。
       在调用模式匹配时,应使用单引号。

3、常用的grep选项有:
      -c 只输出匹配行的计数。
      -i 不区分大小写(只适用于单字符)。
      -h 查询多文件时不显示文件名。
      -l 查询多文件时只输出包含匹配字符的文件名。
      -n 显示匹配行及行号。
      -s 不显示不存在或无匹配文本的错误信息。
      -v 显示不包含匹配文本的所有行。

4、查询多个文件
      如果要在当前目录下所有.doc文件中查找字符串“sort”,方法如下:
        $ grep "sort" *.doc
      或在所有文件中查询单词“sort it”
        $ grep "sort it" *

5、在文本文件中grep选项的用法。

    (1)、行匹配
         $ grep -c "48" data.f
         $ 4
     grep返回数字4,意义是有4行包含字符串“48”。

    (2)、行数

         $ grep -n "48" data.f

      显示满足匹配模式的所有行行数,行数在输出第一列,后跟包含48的每一匹配行。(行数在第一列,和$在一列)

    (3)、显示非匹配行

         $ grep -v "48" data.f

       显示所有不包含48的各行

    (4)、精确匹配
        可能大家已注意到,在上一例中,抽取字符串“ 48”,返回结果包含诸如484和483等包含“48”的其他字符串,实际上应精确抽取只包含48的各行。注意在每个匹配模式中抽取字符串后有一个<Tab>键,所以应操作如下:

         $ grep "48<tab>" data.f

         <tab>表示点击tab键。

     使用grep抽取精确匹配的一种更有效方式是在抽取字符串后加\>。假定现在精确抽取48,方法如下:

        $ grep "48\>" data.f

    (5)、大小写敏感
       缺省情况下, grep是大小写敏感的,如要查询大小写不敏感字符串,必须使用-i开关。在data.f文件中有月份字符Sept,既有大写也有小写,要取得此字符串大小写不敏感查询,方法如下:

       $ grep -i "sept" data.f

    (6)、grep和正则表达式

       此内容暂且不介绍


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar