Grep第二课(简单介绍)

先简单介绍下,下一次介绍正则表达式regular expression(RE) 。grep (global search regular expression(RE)
and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包 括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能
更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

命令格式:grep [options]

参数列表

^

锚定行的开始 如:‘^grep‘匹配所有以grep开头的行。

$

锚定行的结束 如:‘grep$‘匹配所有以grep结尾的行。

.

匹配一个非换行符(‘\n‘)的字符如:‘gr.p‘匹配gr后接一个任意字符,然后是p。

*

匹配零个或多个先前字符 如:‘ *grep‘ (注意*前有空格)匹配所有零个或多个空格后紧跟grep的行,需要用egrep 或者grep带上 -E 选项。 .*一起用代表任意字符。

[]

匹配一个指定范围内的字符,如‘[Gg]rep‘匹配Grep和grep。

[^]

匹配一个不在指定范围内的字符,如:‘[^A-FH-Z]rep‘匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行。

\(..\)

标记匹配字符,如‘\(love\)‘,love被标记为1。

\<

锚定单词的开始,如:‘\<grep‘匹配包含以grep开头的单词的行。

\>

锚定单词的结束,如‘grep\>‘匹配包含以grep结尾的单词的行。

x\{m\}

重复字符x,m次,如:‘o\{5\}‘匹配包含5个o的行。

x\{m,\}

重复字符x,至少m次,如:‘o\{5,\}‘匹配至少有5个o的行。

x\{m,n\}

重复字符x,至少m次,不多于n次,如:‘o\{5,10\}‘匹配5--10个o的行。

\w

匹配文字和数字字符,也就是[A-Za-z0-9],如:‘G\w*p‘匹配以G后跟零个或多个文字或数字字符,然后是p。

\W

\w的反置形式,匹配一个或多个非单词字符,如点号句号等。

\b

单词锁定符,如: ‘\bgrep\b‘只匹配grep。[1]

用于egrep和 grep -E的元字符扩展集

\+

匹配一个或多个先前的字符。如:‘[a-z]\+able‘,匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。

\?

匹配零个或一个先前的字符。如:‘gr\?p‘匹配gr后跟一个或没有字符,然后是p的行。

a\|b\|c

匹配a或b或c。如:grep|sed匹配grep或sed

\(\)

分组符号,如:love\(ab\le\|rs\)ov\+匹配loveable或lovers,匹配一个或多个ov。

时间: 2024-10-06 21:18:17

Grep第二课(简单介绍)的相关文章

grep、egrep简单介绍

grep:global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来.个人理解为:要使用正则表达式:只针对文本全面搜索:把文本中匹配的行打印出来,并且不对原文本内容做任何修改. 1.grep使用格式: grep  [OPTIONS]  PATTERN  [FILE...] (1)常用OPTIONS: --color:匹配的关键字用颜色标记显示出来                 -v:显示不能被模式匹配

grails2.3.11第二课

第二课主要介绍grails相关插件的使用,这是敏捷开发所必需的途径. 可以把grails的插件看作是grails正常项目的迷你型,因为看插件的源码,它的目录结构和正常项目相差无几. 官方开源插件地址 https://grails.org/plugins 内部插件地址 http://maven.info.bit.edu.cn 主要介绍了常用的一些插件吧,每个插件的用法不尽相同,但是有一个共同点是要在BuildConfig.groovy这个配置文件里 compile 相关插件. 常用的包括: 前端插

Linux探索之旅 | 第五部分第二课:一入Shell深似海,酷炫外壳惹人爱

-- 简书作者 谢恩铭 转载请注明出处 内容简介 前言 Shell是什么? 我们的第一个Shell脚本 运行Shell脚本 总结 第五部分第三课预告:变量在手,Shell不愁 1. 前言 上一课是 Linux探索之旅 | 第五部分第一课:Vim岂是池中物,宝剑锋从磨砺出 . 现在,我们已经学习了 Vim 这样强大的文本编辑器.相信我,Vim 对我们之后的课程会非常有用. 这一课我们可以进入第五部分的重心了:Shell 编程. 什么是Shell呢? 首先,shell 是英语"壳,外壳"的

【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布

内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做了介绍,也带大家配置了SDL的开发环境.请大家按照上一课的步骤创建一个SDL工程,能够初步运行. 如果遇到问题,可以百度,Google相关平台SDL的配置.或者联系小编. 当然了,有些朋友可能会说开发C语言游戏还可以用GTK+这个库,但是个人认为GTK+没有SDL那么适合开发游戏,其创建图形界面的能

【Web探索之旅】第二部分第二课:服务器语言

内容简介 1.第二部分第二课:服务器语言 2.第二部分第三课预告:框架和内容管理系统 第二部分第二课:服务器语言 介绍了Web的客户端,我们来谈谈Web的服务器端. 既然客户端有客户端的编程语言(HTML,CSS和JS),那么我们服务器端岂能逊色呢,对吧. 服务器端也有不少种编程语言.这些编程语言写成的程序会在服务器端的电脑上被执行. 如果说客户端的语言编写的程序决定了我们的网页的外观,那么服务器端的语言编写的程序决定了网页的功能和如何与用户交互. 你也许会问:"既然我们可以用HTML,CSS和

shell语法简单介绍

一.基本的语法 1.1.shell文件开头 shell文件必须以以下的行開始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的參数是用来运行该文件的程序.在这个样例中我们使用/bin/sh来运行程序. 当编辑好脚本时,假设要运行该脚本,还必须使其可运行. 要使脚本可运行: 执行chmod +x filename 这样才干用./filename 来执行 1.2 凝视 在进行shell编程时,以#开头的句子表示凝视,直到这一行的结束.我们真诚地建议您在程序中使用凝视. 假设

【自动语音识别课程】第二课 语音信号分析

[传送门] [自动语音识别课程]第一课 统计语音识别介绍 原文地址:http://blog.csdn.net/joey_su/article/details/36414877 转载请注明出处,欢迎交流. 概述 针对ASR的语音信号分析 特征 频谱分析 倒谱分析 标准特征:MFCC和PLP分析 动态特征 第一课的结尾提到了语音识别的框图,下图展示了信号分析技术在语音识别系统中的位置: 我们先来认识下语音的产生过程: 语音是在发音器官和声道共同作用下产生的.说话时,声带振动发出具有一定周期特性(基音

【Linux探索之旅】第二部分第二课:命令行,世界尽在掌握

内容简介 1.第二部分第二课:命令行,世界尽在掌握 2.第二部分第三课预告:文件和目录,组织不会亏待你 命令行,世界尽在掌握 今天的标题是不是有点霸气侧漏呢? 读者:"小编,你为什么每次都要起这么非主流的标题呢?不能愉快地玩耍么?" 小编:"那我问你,老子他为什么要写<道德经>咧?" 读者:"为什么咧?" 小编:"因为老子愿意!" 开个小玩笑轻松一下 O(∩_∩)O~ 没办法,不能不激动,因为我们终于来到了这一刻,

htop简单介绍与dstat

htop 可以监视和控制进程.top功能虽然强大,但是一个古老的命令了.htop是为了替代top而产生的.htop功能更加强大,在htop程序中可以对进程发送信号,如kill进程,还支持鼠标点击操作,显示也更加直观,CPU,内存使用情况可以用LED的方式显示出来.与top一样,输入htop命令打开,但htop没有默认安装.其rpm包在fedora的EPEL源,源代码位于第三方源代码托管站.我在附件中传有源代码包和32位以及64rpm包.下面开始介绍使用方法.######htop监视的每例都例都是