正则表达式和grep命令的用法

正则表达式和grep命令的用法:

一、正则表达式:

正则表达式(也称为regular Expression,简称RE)就是由普通字符(例如字符a到z)以及特殊字符(称之为元字符)组成的文字模式。

该模式描述在查找文字主体时待匹配的一个或多个字符串。

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表示通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序。vim、grep、find等命令都支持正则表达式。

常用正则表达式:

1、其中,.代表任意单个字符,*代表重复零个到无穷多个的前一个字符。

例如,你要查找文件data中以an开头的所有行并显示,可以用一下命令:

grep‘an.*data|more

2、^代表行的开始。^love$  如:与所有love开头的行匹配

grep ^le test

3、$代表行的结束。love$   如:与所有love结尾的行匹配

那么‘^$’就表示空行

grep   at$  test     (^ 和  $)是定位元字符

4、[···]匹配括号中的字符之一

[abc]              匹配单个字符a或b或c

[123]              匹配单个字符1或2或3

[a-z]              匹配小写字母a-z之一

[a-zA-Z]          匹配任意英文字母之一

[0-9a-zA-Z]      匹配任意英文字母或数字之一

注意:上面标红色的单子和之一,不管[] 里面多复杂,它的结果都是一个字符!

grep  ‘l[ae]e‘  test

grep‘/l[ae]/‘   test

4、预定义的POSIX字符类

字符类                   说明

[:alnum:]              字母数字字符

[:alpha:]              代表任何英文大小写字符,即A-Z,a-z

[:lower:]              小写字母字符

[:graph:]              除了空格符(空格键与[Tab]按键)外的其他所有按键

[:upper:]              大写字母字符

[:digit:]              数字

[:space:]              空白字符(禁止打印),如回车符、换行符、竖直制表符合换页符

[:punct:]              标点字符(即”’?!;:#$)

[:cntrl:]              控制字符(禁止打印)

[:print:]               代表任何可以被打印出来的字符

尤其上表中的[:alnum:]、[:alpha:]、[:upper:]、[:lower:] 、[:digit:]这几个一定要知道代表什么意思,因为它要比a-z或A-Z的用途更确定。

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

$ls-l|grep ‘^d‘

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

$grep  ‘test‘ d*

显示所有以d开头的文件中包含tset的行。

$grep  ’test‘ aa  bb  cc

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

$grep ‘[a-z]\[5,\]‘ aa

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

扩展正则表达式

grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外grep单独提供了一个扩展命令叫做egrep用来支持扩展正则表达式,这条命令和grep -E等价。虽然一般情况下,基本正则表达式就够用了。特殊情况下,复杂的扩展表达式,可以简化字符串的匹配。

扩展正则表达式就是在基本正则表达式的基础上,增加了一些元数据。



元数据                                   意义和范例



+                            重复前面字符1到多次。例如:匹配god,good

goood等等字符串。 grep -nE go+d‘regular.txt



?              匹配0或1次前面的字符。例如,匹配gd,god

grep -nE‘go?d’regular.txt



|             或(or)的方式配多个字串。例如:grep –nE‘god|good’ regular.txt  匹配god或者good



匹配整个括号内的字符串,原来都是匹配单个字符。

(  )                         例如:搜寻good或glad   grep –nE ‘g(oo|la)’regular.txt



Linux下面的正则表达式博大精深,上文支持总结了最常用的部分,如果熟练掌握的上面部分的正则表达式基本上可以满足日常使用了。

另外Linux很多命令支持正则表达式,比如find、sed、awk。请在使用的时候参照这些命令的手册使用正则表达式。

时间: 2024-12-05 09:21:56

正则表达式和grep命令的用法的相关文章

正则表达式2——grep命令

grep是Global search Regular Expression and Print out the line的简称. 1. grep命令基本用法 命令格式: grep [选项][模式][文件-] 选项 意义 -c 只输出匹配行的数量 -i 搜索时忽略大小写 -h 查询多文件时不显示文件名 -l 只列出符合匹配的文件名,而不列出具体匹配行 -n 列出所有匹配行,并显示行号 -s 不显示不存在或无匹配文本的错误信息 -v 显示不包含匹配文本的所有行 -w 匹配整词 -r 递归搜索,不仅搜

Linux中find、grep命令详细用法

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.find命令 find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以

正则表达式和sed命令的用法

一.            正则表达式:   正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式. 该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表示式通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.gre

正则表达式与grep命令

一.引言 介绍Linux系统中的两个命名:grep,egrep.要想使用这2个命令要先学会使用正则表达式,在介绍正则表达式之前,先说明一下,大家都熟知的在word中使用的通配符,即: *:表示任意长度任意字符. ?:表示任意单个字符. 记住上面这两个字符所表示的意思,后面还会在正则表达式里出现,但意义不同. 1.正则表达式:Regular Expression,REGEXP 由一类特殊字符及文本字符所编写的模式,其有些字符不表示字面意义,而是用于表示控制或通配的功能: 元字符分两类: 基本正则表

linux shell基础(四)正则表达式与grep命令(编辑中)

一.正则表达式之前学习find命令时,就已经接触过一些简单的正则,那么我们现在来学习一些复杂的正则.首先,我们还是来复习什么是正则表达式,看这个教程先,一定要多看几遍,至少知道正则大概长什么样子.(转载至https://deerchao.net/tutorials/regex/regex.htm )正则就是有规律的一串字符串,用来描述一个特定的内容,正则适合用来处理字符串,不太适合处理数学逻辑.学好正则对编写shell脚本有很大的好处,所有的shell脚本大部分都涉及到正则表达式.各种编程工具中

linux中grep命令的用法(转)

作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:grep  [选项]  ”模式“  [文件] grep家族总共有三个:grep,egrep,fgrep. 常用选项: -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印. -n :显示行号 -w :被匹配的文本只能是单词,而不能是单词中的某一部分

linux中grep命令的用法

作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的.首先谈一下grep命令的常用格式为:grep  [选项]  "模式"  [文件] grep家族总共有三个:grep,egrep,fgrep. 常用选项: -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印. -n :显示行号 -w :被匹配的文本只能是单词,而不能是单词中的

Linux find、grep命令详细用法

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下:find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.find命令find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以指定

正则表达式及grep、egrep用法

正则表达式:(英语:Regular Expression.regex或regexp,缩写为RE),也译为正规表示法.常规表示法,在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.可以分为基本正则表达式和扩展正则表达式. 一.基本正则表达式: 1.基本正则表达式的元字符 . :匹配任意单个字符 []: 匹配指定范围内的任意单个字符,其中有以下几种常用特殊的表达方式表示特殊的意义: [[:digit:]] 匹配任意单个数字即[0-9] [[:lower:]] 匹配任