zoukankan      html  css  js  c++  java
  • grep 使用场景

    (1)结合find命令和管道
      你的一个音乐文件夹里有多种格式的文件,而你只想找到艺术家jay的mp3文件,并且不含有任何的混合音轨
    find . -name "*mp3" | grep -i jay | grep -vi "remix"
     
    分析:
    1)使用find -name 来列出所有mp3文件,重定向给grep
    2 ) 使用grep -i 来查找包含jay的行
    3)使用grep -vi 来查找不包含remix的行
    -i: 不区分大小写
    -v:反向匹配,即显示不匹配的行
     
    (2)-A -B -C
      很多时候,我们并关心匹配行而是关心匹配行的上下文。这时候-A -B -C就有用了
    -A n 后n行,A记忆为(After)
    ifconfig | grep -A 2 "Link encap"
    -B n 前n行,B记忆为(Before)
    ifconfig | grep -B 2 "inet6"
     
    -C n 前n行,后n行,C记忆为(Center)
    ifconfig | grep -C 2 "lo"
     
    (3) 用-c来统计数目
      你手头有一个很大的文件,这个文件包含网址,比如www.baidu.com tieba.baidu.com等等。你想要知道有多少个隶属于百度的网址
    grep -c "baidu.com" file.txt
     
    (4) -r 递归查找子目录
      查找当前目录极其子目录下面包含匹配字符的文件
    查找子目录,匹配后输出行号,这里的点表示当前目录
    grep -nr baidu .
    -n:显示匹配行以及行号
     
    查找子目录,匹配后只输出文件名
    grep -lr baidu .
    -l:查询多文件的时候只输出包含匹配字符的文件名
     
    (5)--line-buffered 打开buffering 模式
      你有一个文件是动态的,它不断地添加信息到文件的尾部,而你想要输出包含某些信息的行。即持续的grep一个动态的流
     
     
    [root@localhost ~]#tail -f file | grep --line-buffered your_pattern 
     
     
    (6)结合ps查找进程
     
     
    (7)查找不包含某一个目录
    grep -R --exclude-dir=node_modules 'some pattern' /path/to/search
    grep -R --exclude-dir=test2 baidu .
     
    (8)查找IP地址
    这里用到了-o和-P命令
    我们通过man grep查看
    -o, --only-matching:
                  Show only the part of a matching line that matches PATTERN.
    -P, --perl-regexp:
                  Interpret PATTERN as a Perl regular expression.
    也就是说-o,只显示匹配行中匹配正则表达式的那部分
    -P,作为Perl正则匹配
     
    grep -oP "([0-9]{1,3}\.){3}[0-9]{1,3}" file.txt
    [0-9]{1,3}表示在0-9的范围里面循环1个、2个或者3个,可能结果有5、20、415等。
    如果循环指定次数,如3次,则{3,3}可以简写成{3}

     
    (9)查找邮箱
    grep -oP "[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+" file.txt
     
  • 相关阅读:
    词法分析程序~总结
    0916 词法分析程序
    0909 编译原理
    1029 文法分析
    0916 编译原理第二次上机作业
    0909 编译原理第一次上机作业
    复利计算之回顾并总结这三次实验
    复利计算之说明代码运行结果和功能点
    操作系统之实验0 了解和熟悉操作系统
    12-16 实验四 递归下降语法分析程序设计
  • 原文地址:https://www.cnblogs.com/linuxlinuxlinux/p/7686767.html
Copyright © 2011-2022 走看看