正则表达式和文本搜索工具grep

正则表达式是由字面文本和具有特殊意义的符号组成的。我们可以根据具体需求,使用它们构造出合适的正则表达式来匹配文本。它是一种匹配文本的通用语言。正则表达式是模式匹配技术的核心,借助合适的正则表达式,可以生成我们所需的各类输出结果,例如过滤、剥离、替换、搜索等。



正则表达式的基本组成部分

^ #行起始标记(使用cat -a显示空格,行首,行尾等标记。)
  #示例 ^It 匹配以It起始的行
$ #行尾标记
  #示例 It$ 匹配以It结尾的行
. #匹配任意一个字符
   #示例:Hack.匹配Hackl和Hacki,但是不能匹配Hackl2和Hackil,它只能匹配单个字符
[] #匹配包含在[字符]之中的任意一个字符
   #示例:coo[kl] 匹配cook 或 cool
[^] #匹配除[^字符]之外的任意一个字符
   #示例:9[^01] 匹配92 、93,但不匹配91或90
[-] #匹配[]中指定范围内的任意一个字符
   #示例 [1-5]匹配1至5的任意一个数字,[a-z]匹配a到z之间的任意一个字母
?  #匹配之前的项一次或零次
   #示例:colou?r匹配color或colour 但不能匹配colouur
+  #匹配之前项一次或多次
   #Rollo-9+匹配Rollo-99、Rollo-9但不匹配Rollo-
*  #匹配之前项0次或多次
   #示例:co*l 匹配cl、col、cool等
() #创建一个用于匹配的子串
   #示例:ma\(tar\)?x匹配max或matarx
{n} #匹配之前的项n次
    #[0-9]\{3\}匹配任意一个三位数,可扩展为[0-9][0-9][0-9]
{n,} #匹配之前项至少n次
     #示例:[0-9]\{2,\}匹配任意一个两位或更多数字
{n,m} #之前的项匹配至少n次,最多匹配m次
|     #匹配左边项或右边项
      #示例:Oct\(1st|2nd\)匹配Oct 1st或Oct 2nd
\    #转义符


grep是使用正则表达式来进行文本模式匹配的文本搜索工具。

(1)搜索包含特定模式的文本行

grep pattern filename filename #可同时搜索多个文件
echo "this a word"|grep word #或从stdin中读取

(2)用--color选项在输出行中着重标记匹配到的单词

grep word filename --color=auto

(3)grep只解释模式中的某些特殊字符。如果要使用完整的正则表达式,需要使用egrep或加-E选项使用扩展正则表达式。

grep "[a-z]+" filename

(4)-o 只输出匹配到的文本部分

(5)-v打印匹配到的行之外的文本

(6)-c打印匹配到的行,非匹配次数

(7)-n打印包含匹配字串的行号

(8)-e匹配多个模式1

grep -e "pattern1" -e "pattern2"

(9)-f 指定匹配样式文本,每行一个匹配样式

正则表达式和文本搜索工具grep

时间: 2024-10-12 18:06:04

正则表达式和文本搜索工具grep的相关文章

使用正则表达式配合文本搜索工具Grep以及Egrep快速搜索文本

正则表达式: 计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 正则表达式由两类组成: 基本正则表达式与扩展正则表达式 基本正则表达式: 字符匹配 .:匹配单个字符 []:匹配指定集合中的任意单个字符 [:digit:]:所有数字(0-9) [:lower:]:所有小写字母(a-z) [:upper:]:所有大写字母(A-Z) [:space:]:空白符 [:punct:]:特殊字

Linux中文本搜索工具“grep”命令详解

人生中应该有两次冲动,一次是轰轰烈烈的爱情,一次是说走就走的旅行.我属于第三种,轰轰烈烈的辞职然后马不停蹄的参加了马哥的linux面授班,两周时间内对linux有了些初步的了解,与此同时,两周内八天课程中的各种定义.概念.原理.命令由于量大.琐碎,也着实给我们这些小白一个下马威,即使每天11点撤退也觉得时间不够用.鉴于对自己的负责和马哥的作业要求,特对文本搜索工具grep写些使用指南,其中可能会有描述不确切或有偏颇之处,望及时指正. 开始--. 首先,要说一下grep是什么,用在什么地方. gr

详解正则表达式以及文本处理工具—grep、egrep的用法和特性

一.grep (1)grep简介 grep:全称是Global search REgular expression and Print out the line,全局搜索正则表达式并输出合适的行. grep是一种强大的文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行.(只对文本进行搜索处理) Unix的grep家族包含grep.egrep和fgrep. (2)grep的用法 语法格式:grep [option]... 'PATTERN' FILE... 选

Linux 基础之文本搜索工具grep

一.grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep grep: 默认支持基本正则表达式: egrep: 扩展正则表达式: fgrep: 不支持正则表达式元字符,搜索字符串的速度快 二.通过man手册获取grep帮助信息: #man grep GREP(1)                     

文本搜索工具grep,egrep,fgrep的区别

一.grep 1.用途:文本搜索工具,根据用户指定的文本模式(patten)对目标文件进行逐行搜索,显示能够被模式匹配的行内容. 2.命令使用格式: grep [option] ' PATTEN 'files- 2.1 常用选项详解 2.1.1 单文件查找: -n:显示匹配行的行号(为了显示清楚匹配行,下面的都用n+其他选项) -v :反向匹配(即显示非匹配行) –> 常用于过滤掉一些无关的信息,增加显示信息的可读性. ※第一个[5]就是指第5行被匹配. -o:只显示行中被模式所匹配的字符串,而

Linux命令之文本搜索工具grep、egrep、fgrep

grep即global search regular expression_r(RE) and print out the line,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep家族包括grep.egrep和fgrep:egrep是grep的扩展:fgrep查找一个或多个与给出的字符串或词组相匹配文件中的行,不支持规则表达式 语法:grep [OPTIONS] PATTERN [FILE...] 常用参数选项 --color=auto:对匹配到的串做高亮

文本搜索工具Grep、Egrep的简单应用

 Grep是一个最初用于Unix操作系统的命令行工具.在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本. 使用格式: grep [选项] '内容' files   或 命令 | grep [选项] '内容' 常用选项: --color: 显示内容高亮 -v:反向选取(即显示除了用户定义的内容以外的内容) -o:仅显示匹配的内容 -i :忽略字符大小写 -E:使用扩展正则表达式  Egrep命令是一个搜索文件获得模式,使用该命令可

Linux下文本搜索工具grep命令使用入门

grep命令入门 如果想通过使用grep命令来实现理想化的文本搜索,对正则表达式的了解是比不可少的.文献1对正则表达式语法做了一个简单的介绍,文献2提供了一个简单的入门.码农也可以自己google一下其他的参考资料.下面就grep命令的使用做个入门级的介绍. 1.1 grep命令的变种 linux下除了grep命令可以完成文本搜索外,还存在egrep,fgrep,rgrep三个命令.这三个命令都是由grep加上一些控制参数演变而来,如egrep=grep -E, fgrep=grep -F, r

Linux之文本搜索工具grep

grep功能:根据模式搜索文本,并将符合模式的文本行显示出来 PATTERN:模式,即文本字符和正则表达式的元字符组合而成的匹配条件 1 通配符: *:任意长度的任意字符 ?:任意单个字符 []:匹配指定范围内的任意单个字符 [^]:与[]相反 2 正则表达式: 元字符: .:匹配任意单个字符 *:匹配次数(工作在贪婪模式下,尽可能长的匹配), 匹配其前面的字符任意个 .*:任意长度的任意字符 \?:匹配其前面的字符1次或0次 \{m,n\}:匹配其前面的字符至少m次,至多n次 \{1,\}:匹