使用正则表达式搜索文本,并把匹配的行打印出来。使用权限是所有用户。

基本使用

grep [option] pattern filename:

	pattern如果是表达式或者超过两个单词的, 需要用引号引用。

	可以是单引号也可双引号, 区别是单引号无法引用变量而双引号可以。

grep test *file
在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的行,并打印出该字符串的行

常用选项

  -E :开启扩展(Extend)的正则表达式。

  -i :忽略大小写(ignore case)。

  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。

  -n :显示行号。

  -w :被匹配的文本只能是单词,而不能是单词中的某一部分

  -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。

  -o :只显示被模式匹配到的字符串。

  --color :将匹配到的内容以颜色高亮显示。

  -A  n:显示匹配到的字符串所在的行及其后n行,after

  -B  n:显示匹配到的字符串所在的行及其前n行,before

  -C  n:显示匹配到的字符串所在的行及其前后各n行,context

基本正则表达式

匹配字符

	. :任意一个字符。

	[abc]:
表示匹配一个字符,这个字符必须是abc中的一个。 [a-zA-Z]:
表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。 [^123]:
匹配一个字符,这个字符是除了1、2、3以外的所有字符。 匹配次数 \{m,n\}:
匹配其前面出现的字符至少m次,至多n次。
\?:
匹配其前面出现的内容0次或1次,等价于\{0,1\}。
*:
匹配其前面出现的内容任意次,等价于\{0,\},所以 ".*" 表述任意字符任意次,即无论什么内容全部匹配。 匹配位置 ^:
锚定行首 $:
锚定行尾。技巧:"^$"用于匹配空白行。 \<:
锚定单词的词首。如"\blike"不会匹配alike,但是会匹配liker \>:
锚定单词的词尾。如"\blike\b"不会匹配alike和liker,只会匹配like \b:
边界符,如:'\bgrep\b'只匹配grep

扩展的(Extend)正则表达式

注意要使用扩展的正则表达式要加-E选项,或者直接使用egrep

egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式。

扩展表达式:
+
匹配一个或者多个先前的字符, 至少一个先前字符 ?
匹配0个或者多个先前字符 a|b|c
匹配a或b或c ()
字符组, 如: love(able|ers) 匹配loveable或lovers (..)(..)\1\2
模板匹配,\1代表前面第一个模板,\2代第二个括弧里面的模板 x{m,n} = x\{m,n\} * :和基本正则表达式一样

grep命令 一 文本搜索工具的更多相关文章

  1. grep 强大的文本搜索工具

    1.grep -r "History folder does't exist:" * :中间是要搜索的文本,* 表示全部显示出来

  2. [linux] grep 文本搜索工具

    grep [option] pattern file Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular ...

  3. grep文本搜索工具详解

    ############grep命令############这个命令属于文本处理三大命令之一,强大的文本搜索工具(贪婪模式)全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达 ...

  4. 二、grep文本搜索工具

    grep命令作为Unix中用于文本搜索的神奇工具,能够接受正则表达式,生成各种格式的输出.除此外,它还有大量有趣的选项. # 搜索包含特定模式的文本行: [root@centos8 ~]#grep p ...

  5. Linux 命令行下搜索工具大盘点,效率提高不止一倍!

    在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令.grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂. 于是,为了简化 grep ...

  6. 基于文本图形(ncurses)的文本搜索工具 ncgrep

    背景 作为一个VIM党,日常工作开发中,会经常利用grep进行关键词搜索,以快速定位到文件.如图: 利用grep进行文本搜索 但是,这一过程会有两个效率问题: 展示的结果无法进行直接交互,需要手动粘贴 ...

  7. Linux下替代grep高效文本搜索工具

    1.ack yum install ack 2.ag git clone https://github.com/ggreer/the_silver_searcher.git yum install a ...

  8. awk、sed、grep三大shell文本处理工具之grep的应用

    1.基本格式grep pattern [file...](1)grep 搜索字符串 [filename](2)grep 正则表达式 [filename]在文件中搜索所有 pattern 出现的位置, ...

  9. awk、sed、grep三大shell文本处理工具之sed的应用

    sed 流编辑器 对文本中的行,逐行处理 非交互式的编辑器 是一个编辑器 1.工作流程 1)将文件的第一行读入到自己的缓存空间(模式空间--pattern space),删除掉换行符 2)匹配,看一下 ...

随机推荐

  1. (好题)2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest F Pizza Delivery

    题意:给n个点m条边的有向图.每次使一条边反向,问你1到2的最短路变短,变长,还是不变. 解法:遇到这种题容易想到正向求一遍最短路d1,反向再求一遍最短路d2.纪录原图上的最短路为ans,然后分开考虑 ...

  2. TCP协议中的三次握手和四次挥手(图解)(转)

    转自:http://blog.csdn.net/whuslei/article/details/6667471 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看 ...

  3. laravel多字段模糊匹配

    use App\Models\Resume; $resume = Resume::query(); $content = $request->input('content'); $resume ...

  4. 【leetcode】955. Delete Columns to Make Sorted II

    题目如下: We are given an array A of N lowercase letter strings, all of the same length. Now, we may cho ...

  5. 30天轻松学习javaweb_通过javac编译java文件

    通过javac编译java文件1.先导入需要引用的包D:\Program Files (x86)\apache-tomcat-7.0.53\webapps\test\WEB-INF\classes&g ...

  6. MVC 中对返回的 data 进行压缩

    在webAPI 中返回数据,在数据量比较大的情况的下,返回的data 也可能比较大,有时候可能大于1兆,因此对数据进行压缩能极大的提高数据下载到客户端的时间,提高页面的加载速度. 思路: 在web a ...

  7. 微信小程序无法获取到unionId(专业踩坑20年)

    UnionID机制说明如果开发者拥有多个移动应用.网站应用.和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用.网站应用和公众帐号(包括小程 ...

  8. Entity Framework 应用程序有以下优缺点

    优点: 1.跨数据库支持能力强大,只需修改配置就可以轻松实现数据库切换2.提升了开发效率,不需要在编写Sql脚本,但是有些特殊Sql脚本EF无法实现,需要我们自己编写(通过EF中的ExecuteSql ...

  9. ASP.NET Core学习——3

    中间件 中间件是用于组成应用程序管道来处理请求和相应的组件.管道内的每一个组件都可以选择是否将请求交给下一个组件,并在管道中调用下一个组件之前和之后执行某些操作.请求委托被用来建立请求管道,请求委托处 ...

  10. Openstack组件部署 — Nova overview

    目录 目录 前文列表 前言 Compute service overview Nova 的组件 nova-api service nova-api-metadata service nova-comp ...