zoukankan      html  css  js  c++  java
  • shell学习(3)- grep

    常用选项
        -E :开启扩展(Extend)的正则表达式。
      -i  :忽略大小写(ignore case)。
      -v :反过来(invert), 显示不包含匹配文本的所有行。
      -V 或 --version : 显示版本信息
            -n :显示行号
      -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
      -c  :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
      -o  :只显示被模式匹配到的字符串。
            -r    :递归
            -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式
      --color :将匹配到的内容以颜色高亮显示。
      -A  n:显示匹配到的字符串所在的行及其后n行,after
      -B  n:显示匹配到的字符串所在的行及其前n行,before
      -C  n:显示匹配到的字符串所在的行及其前后各n行,context
    [kumufengchun@localhost ~]$ cat sed.txt
    my cat's name is betty
    
    This is your This dog
    my dog's name is This frank
    
    This is your fish
    my fish's name is This george
    This is your goat
    my goat's name is This adam
    [kumufengchun@localhost ~]$ cat sed.txt | grep -i this
    This is your This dog
    my dog's name is This frank
    This is your fish
    my fish's name is This george
    This is your goat
    my goat's name is This adam
    [kumufengchun@localhost ~]$ cat sed.txt | grep -v this
    my cat's name is betty
    
    This is your This dog
    my dog's name is This frank
    
    This is your fish
    my fish's name is This george
    This is your goat
    my goat's name is This adam
    [kumufengchun@localhost ~]$ cat sed.txt | grep -iv this
    my cat's name is betty
    
    [kumufengchun@localhost ~]$ cat sed.txt | grep -n This
    3:This is your This dog
    4:my dog's name is This frank
    6:This is your fish
    7:my fish's name is This george
    8:This is your goat
    9:my goat's name is This adam
    [kumufengchun@localhost ~]$ cat sed.txt | grep -w This
    This is your This dog
    my dog's name is This frank
    This is your fish
    my fish's name is This george
    This is your goat
    my goat's name is This adam
    [kumufengchun@localhost ~]$ cat sed.txt | grep -c This
    6
    [kumufengchun@localhost ~]$ cat sed.txt | grep -o This
    This
    This
    This
    This
    This
    This
    This
    [kumufengchun@localhost ~]$ cat sed.txt | grep -A 2 frank
    my dog's name is This frank
    
    This is your fish
    [kumufengchun@localhost ~]$ cat sed.txt | grep -B 2 frank
    
    This is your This dog
    my dog's name is This frank
    [kumufengchun@localhost ~]$ cat sed.txt | grep -C 2 frank
    
    This is your This dog
    my dog's name is This frank
    
    This is your fish  
    

    或的关系 [kumufengchun@localhost
    ~]$ cat sed.txt | grep -E "frank|adam" my dog's name is This frank my goat's name is This adam

    通用类

    [[:upper:]] [A-Z]
    [[:lower:]] [a-z]
    [[:digit:]] [0-9]
    [[:alnum:]] [0-9a-zA-Z] 
    [[:space:]] 空格或tab
    [[:alpha:]] [a-zA-Z]
    [[:punct:]]标点符号
    替换每行的第二个This为小写this
    [kumufengchun@localhost ~]$ sed -i 's/This/this/2g' sed.txt
    [kumufengchun@localhost ~]$ grep '[[:lower:]]his' sed.txt
    This is your this dog
    [kumufengchun@localhost ~]$ grep '[[:upper:]]his' sed.txt
    This is your this dog
    my dog's name is This frank
    This is your fish
    my fish's name is This george
    This is your goat
    my goat's name is This adam
    
    在文件后边追加 $hello=3
    [kumufengchun@localhost ~]$ sed -i '$a$hello=3' sed.txt
    [kumufengchun@localhost ~]$ cat sed.txt
    my cat's name is betty
    
    This is your this dog
    my dog's name is This frank
    
    This is your fish
    my fish's name is This george
    This is your goat
    my goat's name is This adam
    $hello=3
    
    [kumufengchun@localhost ~]$ grep "hello[^[:upper:]][[:digit:]]" sed.txt
    $hello=3
    [kumufengchun@localhost ~]$ grep "hello[[:punct:]]" sed.txt
    $hello=3
    [kumufengchun@localhost ~]$ grep "he[[:alnum:]]" sed.txt
    $hello=3
    [kumufengchun@localhost ~]$ grep "hello[[:punct:]]" sed.txt
    $hello=3
  • 相关阅读:
    【Todo】CSDN的《问底》系列-学习
    【Todo】深入PHP内核系列
    【转载】网络攻击技术(三)——Denial Of Service & 哈希相关 & PHP语言 & Java语言
    回溯法
    hdu 2842 Chinese Rings
    JSP 9 大内置对象详解
    用Html5结合Qt制作一款本地化EXE游戏-太空大战(Space War)
    HDU2795 billboard【转化为线段树。】
    URAL 1303
    IOS文件沙盒
  • 原文地址:https://www.cnblogs.com/kumufengchun/p/10144508.html
Copyright © 2011-2022 走看看