-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
-r : --recursive 
-i :忽略大小写的不同,所以大小写视为相同
-c :计算找到 '搜寻字符串' 的次数
-l : files-with-matches print only names of FILEs containing matches
 
# grep -l -r ‘test’ *     #在当前目录及其子目录下搜索'test'的文件,但是不显示匹配的行,只显示匹配的文件
-r : 文本输出控制:
  • -A num, --after-context=num: 在结果中同时输出匹配行之后的num行
  • -B num, --before-context=num: 在结果中同时输出匹配行之前的num行,有时候我们需要显示几行上下文。
  • -C num, 匹配行的前后num行都输出

管道:

我们可以通过管道操作来让grep变得更强大,管道操作就是把前面一条命令的输出作为后面一条命令的输入。

例如,如果我们想查找包含apple的行,但又想过滤掉pineapple,可以用下面的命令:

grep apple fruitlist.txt | grep -v pineapple


如果我们想把搜索结果保存起来,那么可以把命令的标准输出重定向到文件:

grep apple fruitlist.txt | grep -v pineapple > apples.txt

重定向符号>和管道操作符号|的区别是,重定向后面接的是一个文件,它后面不能再接任何文件或命令了;

而管道操作后面接的是命令,可以无限地接下去。如果想以追加方式写到文件,可以用>>。

--
正则表达式
[]
grep -n 't[ae]st' regular_express.txt - 『tast』或『test』
[] 仅代表一个。 [^]
反向选择 [^] 
grep -n '[^g]oo' regular_express.txt  -有 oo 的行,但不想要 oo 前面有 g

当我们在一组集合字节中,如果该字节组是连续的,例如大写英文/小写英文/数字等等, 就可以使用[a-z],[A-Z],[0-9]等方式来书写
那么如果我们的要求字串是数字与英文呢? 呵呵!就将他全部写在一起,变成:[a-zA-Z0-9] 行首与行尾字节 ^ $
grep -n '^the' regular_express.txt - the 只在行首列
grep -n '^[^a-zA-Z]' regular_express.txt - 不想要开头是英文字母
grep -n '\.$' regular_express.txt  行尾结束为小数点 (.) 的那一行
grep -n '^$' regular_express.txt 找出空白行

任意一个字节 . 与重复字节 *
. (小数点):代表『一定有一个任意字节』的意思;
* (星号):代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态
grep -n 'g..d' regular_express.txt --g??d 的字串,亦即共有四个字节, 起头是 g 而结束是 d 
『o*』代表的是:『拥有空字节或一个 o 以上的字节』
 grep -n 'ooo*' regular_express.txt  -『至少两个 o 以上的字串』时,就需要 ooo*
grep -n 'goo*g' regular_express.txt 字串开头与结尾都是 g,但是两个 g 之间仅能存在至少一个 o
grep -n 'g.*g' regular_express.txt g 开头与 g 结尾的行
grep -n '[0-9][0-9]*' regular_express.txt 找出『任意数字』的行
限定连续 RE 字符范围 {}
 我们必须要使用字符   \ 来让他失去特殊意义才行
grep -n 'o\{2\}' regular_express.txt  - 找到两个 o 的字串
grep -n 'go\{2,5\}g' regular_express.txt -  g 后面接 2 到 5 个 o ,然后再接一个 g 的字串
grep -n 'go\{2,\}g' regular_express.txt  - 2 个 o 以上的 goooo....g 
扩展grep(grep -E 或者 egrep):
使用扩展grep的主要好处是增加了额外的正则表达式元字符集。
# egrep 'NW|EA' testfile
northwest NW Charles Main 3.0 .98 3 34
eastern EA TB Savage 4.4 .84 5 20
 

不使用正则表达式


fgrep 查询速度比grep命令快,但是不够灵活:它只能找固定的文本,而不是规则表达式。


fgrep  '*' /etc/profile 

如果你想在一个文件或者输出中找到包含星号字符的行

 

												

egrep 实用参数的更多相关文章

  1. JVM实用参数(五)新生代垃圾回收

    本部分,我们将关注堆(heap) 中一个主要区域,新生代(young generation).首先我们会讨论为什么调整新生代的参数会对应用的性能如此重要,接着我们将学习新生代相关的JVM参数. 单纯从 ...

  2. JVM实用参数(四)内存调优

    理想的情况下,一个Java程序使用JVM的默认设置也可以运行得很好,所以一般来说,没有必要设置任何JVM参数.然而,由于一些性能问题(很不幸的是,这些问题经常出现),一些相关的JVM参数知识会是我们工 ...

  3. JVM实用参数——新生代垃圾回收

    JVM实用参数目录 JVM实用参数——新生代垃圾回收 概述 第1部分  新生代垃圾回收介绍 第2部分 参数介绍 参考 第1部分  新生代垃圾回收介绍 本部分,我们将关注堆(heap) 中一个主要区域, ...

  4. JVM实用参数(三)打印所有XX参数及值

    JVM实用参数(三)打印所有XX参数及值 原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-3-printing-al ...

  5. JVM实用参数(一)JVM类型以及编译器模式

    JVM实用参数(一)JVM类型以及编译器模式 原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-1-jvm-types ...

  6. JVM实用参数(二)参数分类和即时(JIT)编译器诊断

    JVM实用参数(二)参数分类和即时(JIT)编译器诊断 作者: PATRICK PESCHLOW     原文地址    译者:赵峰 校对:许巧辉 在这个系列的第二部分,我来介绍一下HotSpot J ...

  7. JVM实用参数(七)CMS收集器

    HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间.该目标对于大多数交互式应用很重要,比如web应用.在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器 ...

  8. JVM实用参数(八)GC日志

    本系列的最后一部分是有关垃圾收集(GC)日志的JVM参数.GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以优化堆设置和GC设置,或者改进应用程序的对象分配 ...

  9. JVM实用参数(六) 吞吐量收集器

    在实践中我们发现对于大多数的应用领域,评估一个垃圾收集(GC)算法如何根据如下两个标准: 吞吐量越高算法越好 暂停时间越短算法越好 首先让我们来明确垃圾收集(GC)中的两个术语:吞吐量(through ...

随机推荐

  1. SpringBoot常用Starter介绍和整合模板引擎Freemaker、thymeleaf 4节课

    1.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...

  2. shiroWeb项目-记住我(自动登陆实现)(十五)

    用户登陆选择“自动登陆”本次登陆成功会向cookie写身份信息,下次登陆从cookie中取出身份信息实现自动登陆. 用户身份实现java.io.Serializable接口便于反序列化 package ...

  3. Three.js基础探寻二——正交投影照相机

    本篇主要介绍照相机中的正交投影照相机. 第一篇传送门:Three.js基础探寻一 1.照相机 图形学中的照相机定义了三维空间到二维屏幕的投影方式. 针对投影方式照相机分为正交投影照相机和透视投影照相机 ...

  4. ARMV8 datasheet学习笔记3:AArch64应用级体系结构之Memory Type and Attributes

    1.前言 2. Memory类型和属性 memory分为normal memory和device memory,两种类型的Memory有各自的属性,除了下面介绍的几种属性外,还有其他一些杂项属性 2. ...

  5. V4L2文档翻译(一)【转】

    转自:https://blog.csdn.net/airk000/article/details/23218903 相关资料 https://www.kernel.org/doc/Documentat ...

  6. nginx简单介绍

    代理服务器:一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为: 客户端首先与代理服务器创建连 ...

  7. Ex 3_17 无穷路径..._十一次作业

    (a) Inf(p)在p中出现了无穷多次,说明Inf(p)存在一个环当中,所以这个环的顶点肯定是某一个强连通部件的子集. (b) 若G中存在一条无穷路径,则G中至少存在一个环,且这个环至少有两个顶点, ...

  8. android getActivity.findViewById获取ListView 返回NULL

    在控件ID正确的情况下,检查是否在实例化布局文件之后,获取LISTVIEW, 先inflate找layout下布局文件,并实例化后才能获得Listview的ID demo: public class ...

  9. js检测当前设备是移动端还是PC端

    加上下面js即可 硬核判断: <script type="text/javascript"> //平台.设备和操作系统 var system ={ win : fals ...

  10. JProfiler 入门教程

    推荐文章:JProfiler 入门教程 一.安装JProfiler 从http://www.ej-technologies.com/下载5.1.2并申请试用序列号 二.主要功能简介 1.内存剖析 Me ...