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
  • 相关阅读:
    东方财富炒股公式
    centos8安装MySQL8——通过yum
    官网下载工具时。各种不同后缀名称的区别。
    线上不停机部署mysql主从
    店员任务项目总结
    JS到PHP使用RSA算法进行加密通讯
    无锁同步-JAVA之Volatile、Atomic和CAS
    无锁同步-C++11之Atomic和CAS
    浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)
    SQLServer数据库卡,内存吃不上去,系统资源用不上
  • 原文地址:https://www.cnblogs.com/kumufengchun/p/10144508.html
Copyright © 2011-2022 走看看