grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep, egrep和fgrep是grep的扩展,与Windows下命令 findstr 类似。

命令格式:  grep string filename

--color    同—color=auto   高亮显示匹配到的字符串,也可使用别名alias实现,alias grep=‘grep --color=auto’

-v     --revert-match,反向查询,即输出没有匹配到的字符串

-i      --ignore-case,忽略大小写

-n     --line-number,在匹配到的内容前显示行号

-c     --count,匹配到字符串的行数(注意:不是匹配到的次数)

-o      grep默认输出匹配到字符串所在行的全部内容,-o选项仅显示匹配到的字符串

      每个匹配到的字符串都会显示为一行,即若在一行中匹配到n个字符串,会输出n行字符串(每行一个字符串)(用于统计字符串出现在文本中的次数)

-w      完全匹配整个单词,不匹配含有字符串的单词,例如 magic 不匹配会 magical

-a      把二进制文件当做文本处理

-An(after) 显示匹配字符串及其后n行数据

-Bn(before) 显示匹配字符串及其前n行数据

-Cn(context) 显示匹配到的字符串及其前后n行

例:

grep 'linux'   test.txt   test2.txt   //从多个文件中查找linux

多文件查询时,会把文件名在行首输出,并且加上":"作为标示符。

例:

find . -name ".log" | grep -i error | grep -vi "info"

1、使用find -name 来列出所有log文件,重定向给grep

2、使用grep -i 来查找包含error的行

3、使用grep -vi 来查找不包含info的行

egrep与grep -E

grep 过滤多个条件

错误写法:

netstat -an|grep "ESTABLISHED|WAIT"      //默认grep不支持多条件匹配

正确写法:

netstat -an|grep -E "ESTABLISHED|WAIT"    //grep -E 并将条件用""包起来,条件之间用“|”管道符分开

grep -E  '123|abc'  filename  // 找出文件(filename)中包含123或者包含abc的行

egrep  '123|abc'  filename    // 用egrep同样可以实现

awk  '/123|abc/'  filename   // awk 的实现方式

与  &         或  |    非  !

最新文章

  1. wpf listview
  2. Hadoop日记Day1---Hadoop介绍
  3. MYSQL启动报1067错误,系统日志中是“服务 mysql 意外停止” Mysql日志中则是:“Plugin \'FEDERATED\' is disabled”
  4. echarts饼图--数据交互
  5. 17) JMS: java Message Service(Java消息服务)
  6. Git CMD - add: Add file contents to the index
  7. UNIX 网络编程第五章读书笔记
  8. 理解依赖注入(IOC)和学习Unity
  9. jQuery1.9.1针对checkbox的调整
  10. 简单分析android textview xml 的属性设置
  11. 出现JSONvalue failed .error is Illegal start of token
  12. DCL的失效:现实与初衷的背离
  13. 苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类
  14. IntelliJ IDEA 关闭多余项目
  15. [Linux]Ubuntu与终端破墙
  16. sparksql udf自定义函数中参数过多问题的解决
  17. eclipse哪个版本好
  18. 第一次java程序测试感受
  19. KB和KiB的区别
  20. mysql生成不重复随机数(unique number generation)

热门文章

  1. open cursor too much error
  2. Openfire:通过Servlet群发消息
  3. 把握linux内核设计思想系列
  4. 使用Linq 查询数据 构建对象 select new{}
  5. jenkins设置
  6. Codeforces Round #281 (Div. 2) A. Vasya and Football 暴力
  7. hdu 1698(线段树区间更新)
  8. 【辨异】—— 可见 vs. 不可见
  9. Python 下的数据结构实现
  10. 联想Thinkpad L460安装Win7 64位