转自:http://www.cnblogs.com/dong008259/archive/2011/12/12/2285264.html

grep是linux中很常用的一个命令,主要功能就是进行字符串数据的对比,能使用正则表达式搜索文本,并将符合用户需求的字符串打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep在数据中查找出一个字符串时,是以整行为单位来进行数据选取的。

(1)命令格式

  grep [cinvs] 'patten' filename

(2)主要参数

-c:只输出匹配行的计数。
-i:不区分大小写(只适用于单字符)。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。

(3)patten正则表达式主要参数

\  : 转义字符,忽略正则表达式中特殊字符的原有含义。
^ : 匹配以某个字符串开始的行。
$ :   匹配以某个字符串结束的行。
\<: 从匹配正则表达式的行开始。
\>: 到匹配正则表达式的行结束。
[ ]:   在[]内个某单个字符,如[A]即A符合要求 。
[ - ] : 属于[ - ]所标记的范围字符,如[A-Z],即A、B、C一直到Z都符合要求 。
.  :   表示一定有1个任意字符。
* :   重复前面0个或多个字符。

  关于正则表达式的参数还有很多,这里这是列出很少的一部分,具体大家可以参照正则表达式的详解。

(4)实例

  要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。

$ ls -l | grep '^a'

通过管道过滤ls -l输出的内容,只显示以a开头的行。

$ grep 'test' aa bb cc

显示在aa,bb,cc文件中匹配test的行。

$ grep '\{5\}' aa

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

$ grep 'w\(es\)t.*' aa

显示所有包含west,且之后含有零个或多个任意字符的行。

grep---Linux下文本处理五大神器之五的更多相关文章

  1. cut---Linux下文本处理五大神器之四

    转自:http://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html cut是一个选取命令,就是将一段数据经过分析,取出我们想要的. ...

  2. sed----Linux下文本处理五大神器之一

    转自:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行 ...

  3. sort--Linux下文本处理五大神器之三

    转自:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参 ...

  4. Linux下的在线播放神器

    Linux下的在线播放神器:一个是Amarok缺点是,每个音乐源都要更新后才能播放. 在一个就是中国造的:linux deepin下的深度音乐,缺点就是连不上.反正我是连不上

  5. Linux 下文本查找技巧你掌握了吗?

    前言 之前介绍过很多linux下查找相关的命令,例如<Linux中的文件查找技巧>,<find命令高级用法>,<如何查看linux中文件打开情况-lsof命令>等等 ...

  6. Linux下密码抓取神器mimipenguin

    前有Mimikatz,今有mimipenguin,近日国外安全研究员huntergregal发布了工具mimipenguin,一款Linux下的密码抓取神器,可以说弥补了Linux下密码抓取的空缺. ...

  7. linux下文本三剑客之sed

    继上一篇对正则表达式以及linux三剑客grep的讲解后,这一篇对sed重点介绍. 一.sed简介   sed表示流编辑器(Stream Editor).这是一个简单但功能强大的工具,分析文本,并无缝 ...

  8. Linux下文本浏览器lynx

    一般登录到Linux上的时候都是使用Shell登录上去的,但是如果这个时候我们有浏览网页的需求怎么办,比如我刚刚部署上去一个网站,但是我并不知道我有没有部署成功,而且只能在这一台Linux上能够访问到 ...

  9. 教你一招Linux下文本比对方法

    我们在写代码的过程中,免不了会对代码进行一些修修改改.但经常会出现改着改着,就不知道改完后与源文件的差异是怎样的.这里,我们就需要一个文本比对工具来进行文本比对. 有经验的程序员都知道,Windows ...

随机推荐

  1. 流量分析系统---kafka集群部署

    1.集群部署的基本流程 Storm上游数据源之Kakfa 下载安装包.解压安装包.修改配置文件.分发安装包.启动集群 2.基础环境准备 安装前的准备工作(zk集群已经部署完毕)  关闭防火墙 chk ...

  2. bootstrap插件实用方法

    完全通过js來配置 <p><a id="YOUR_BUTTON_FOR_POPOVER" class="btn btn-primary" ro ...

  3. PAT 天梯赛 L1-034. 点赞 【MAP】

    题目链接 https://www.patest.cn/contests/gplt/L1-034 AC代码 #include <cstdio> #include <cstring> ...

  4. 【后缀数组之SA数组】【真难懂啊】

    基本上一搜后缀数组网上的模板都是<后缀数组——处理字符串的有力工具>这一篇的注释,O(nlogn)的复杂度确实很强大,但对于初次接触(比如窝)的人来说理解起来也着实有些困难(比如窝就活活好 ...

  5. Sliverlight变换特性

    通过变换,可以为Silverlight图形对象提供旋转.缩放.扭曲和移动的特效.如果图形元素需要通过修改坐标系统来改变元素显示,可能需要使用变换功能.一般来说,所有的变换使用矩形数学改变图形元素的坐标 ...

  6. TOGAF和BABOK

  7. JFreeChart应用实例-折线图

    http://www.tuicool.com/articles/Nr2Yna JFreeChart在制作折线图的时候可以使用两种不同的方式 package Line; import java.awt. ...

  8. linux性能调分析及调优

    转:https://blog.csdn.net/luokehua789789/article/details/53007456 Linux 性能分析以及调优介绍 写在前面:计算机要解决的基本问题之一是 ...

  9. Python编程-函数进阶二

    一.生成器补充 1.什么是生成器? 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己内置的__iter__方法),所以生成器就是可迭代对象. 2.生成器分类 (1) ...

  10. win7 与 Ubuntu 16.04 文件传送

    win7 与 Ubuntu 16.04 文件传送 环境:主机系统为win7,虚拟机为vmware12, 虚拟系统为ubuntu 16.04 方案一: 通过虚拟机vmware的共享文件夹实现. 方案二: ...