(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
 

grep 使用场景的更多相关文章

  1. 处理海量数据的grep、cut、awk、sed 命令

    grep.cut.awk.sed 常常应用在查找日志.数据.输出结果等等,并对我们想要的数据进行提取. 通常grep,sed命令是对行进行提取,cut跟awk是对列进行提取 处理海量数据之grep命令 ...

  2. Shell基本语法---处理海量数据的grep命令

    grep命令 shell脚本三剑客之一 grep应用场景:通常对数据进行 行的提取 语法:grep [选项] [内容] [file] -v 对内容进行取反提取 -n 对提取的内容显示行号 -w 精确匹 ...

  3. grep、cut、awk、sed的使用

    grep.cut.awk.sed 常常应用在查找日志.数据.输出结果等等,并对我们想要的数据进行提取.通常grep,sed命令是对行进行提取,cut跟awk是对列进行提取 处理海量数据之grep命令 ...

  4. Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》

    首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...

  5. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

    问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...

  6. grep命令的使用

    grep是UNIX和LINUX中使用最广泛的命令之一.grep允许对文本文件进行模式查找.如果找到匹配模式, grep打印包含模式的所有行.grep支持基本正则表达式,也支持其扩展集.grep有三种变 ...

  7. LTE Module User Documentation(翻译15)——示例程序、参考场景以及故障检测和调试技巧

    LTE用户文档 (如有不当的地方,欢迎指正!)     21 Examples Programs(示例程序)   路径 src/lte/examples/ 包含一些示例仿真程序,这些例子表明如何仿真不 ...

  8. 菜鸟学Linux命令:grep配合ls等使用

    linux grep命令 (global search regular expression(RE) and print out the line )是一种强大的文本搜索工具,它能使用正则表达式搜索文 ...

  9. 生产场景NFS共享存储优化及实战

    生产场景NFS共享存储优化: 1.硬件:sas/ssd磁盘,买多块,raid0/raid10,网卡好 2.NFS服务器端优化加all_squash,async /backup/NFS 192.168. ...

随机推荐

  1. Android 扁平化button

    View 创建 colors.xml 文件定义两个颜色 1. <resources> 2.     <color name="blue_pressed">@ ...

  2. Android中使用OnClickListener接口实现button点击的低级失误

    今天写了几行极为简单的代码,就是想implements  View.OnCLickListener.然后实现按钮点击操作.可是按钮却没有反应.找了五分钟还是没有结果. 下面是我的代码,希望大家不要嘲笑 ...

  3. 【BZOJ4584】[Apio2016]赛艇 DP

    [BZOJ4584][Apio2016]赛艇 Description 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着个划艇学校,编号依次为到.每个学校都拥有若干艘划艇.同一所学校的所 ...

  4. 记第一次破解js加密代码

    首先,我要爬的是这个网站:http://www.66ip.cn/nm.html,我想做个直接调用网站的接口获取代理的爬虫 这个接口看上去似乎很简单,直接输入需要的代理条件后,点击提取即可 点击提取后就 ...

  5. [LintCode] 全排列

    递归实现: class Solution { public: /** * @param nums: A list of integers. * @return: A list of permutati ...

  6. 手动爬虫之京东笔记本栏(ptyhon3)

    import urllib.request as ur import urllib.error as ue import re # 目标网址 url = 'https://list.jd.com/li ...

  7. Storm的组件

    摘自网上 当时写的很好,很详细的介绍了各个组件直接的关系 Storm集群和Hadoop集群表面上看很类似.但是Hadoop上运行的是MapReduce jobs,而在Storm上运行的是拓扑(topo ...

  8. Nginx-rtmp直播之业务流程分析 http://www.mamicode.com/info-detail-2287896.html

    Nginx-rtmp直播之业务流程分析 http://www.mamicode.com/info-detail-2287896.html

  9. Java 多线程通信之多生产者/多消费者

    // 以生产和消费烤鸭为例 class Resource { private String name; private int count = 1; // 记录烤鸭的编号 private boolea ...

  10. 转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类

    在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...