linux下的grep,egrep及正则表达式

一, linux上常用的文本搜索工具,grep家族和正则表达式及介绍

  linux上常用的文本搜索工具:

grep(egrep,fgrep):文本搜索工具;基于”pattern“对给定文本进行搜索操作;

sed:Stream EDitor,流编辑器,行编辑工具;文本编辑工具;

awk:GNU awk,文本格式化工具;文本报告生成器;

正则表达式:由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意义,而是用于表示控制或通配的功能;

一般分为两类:

基本正则表达式:BRE

扩展正则表达式:ERE

grep家族:

grep:支持使用基本正则表达式;

egrep:支持使用扩展正则表达式;

fgrep:不支持使用正则表达式;

grep命令和基本正则表达式

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配到的行打印出来。grep全称是Globally search for a Regular Expression and  print  out the line,表示全局搜索正则表达式并打印匹配结果的意思。

作用:文本搜索工具,根据用户指定的”pattern(过滤条件)“对目标文本逐行进行匹配检查;打印出符合条件的行;

模式:由文本字符及正则表达式元字符所编写的过滤条件;

格式:grep  [OPTIONS]  PATTERN  [FILE...]

常用选项:

-i:忽略字符大小写

-o:仅显示匹配 到的文本自身

--color=auto:对匹配到的文本着色后高亮显示

-v:显示除匹配结果以外的所有内容

-q, --quiet, --silient:静默模式,不输出任何信息;

-e PATTERN, --regexp=PATTERN:多模式机制;

-A n : n为数字,表示显示匹配到内容及其后面的n行

-B n : n为数字,表示显示匹配到内容及其前面的n行

-C n : n为数字,表示显示匹配到内容及其前后的n行

-E:等同于egrep,支持扩展的正则表达式;

-F, --fixed-strings:支持使用固定字符串,不支持正则表达式,相当于fgrep;

-G, --basic-regexp:支持使用基本正则表达式;

-P, --perl-regexp:支持使用pcre正则表达式;

基本正则表达式元字符

位置锚定:

^:行首锚定;用于模式的最左侧;格式为:^PATTERN

$:行尾锚定;用于模式的最右侧;格式为:PATTERN$

^$:空白行;

^[[:space:]]*$:空行或包含空白字符的行;

单词:非特殊字符组成的连续字符(字符串)都称为单词;

\< 或 \b:词首锚定,用于单词模式的左侧;

\> 或 \b:词尾锚定,用于单词模式的右侧;

\<PATTERN\>:匹配完整单词;

字符匹配:

.:匹配任意单个字符;

[ ]:匹配范围内的任意单个字符;

[^ ]:匹配范围外的任意单个字符;

[[:digit:]]:任意数字;

[[:lower:]]:任意小写字母;

[[:upper:]]:任意大写字母;

[[:alpha:]]:任意字母;

[[:alnum:]]:任意的字母和数字;

[[:space:]]:空白字符;

[[:blank:]]:空格和Tab键等;

[[:punct:]]:所有的标点符号。

匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数,默认工作于贪婪模式;

*:匹配前面的字符任意次(0,1或多次)

.*:任意长度的任意字符;

\+:匹配前面的字符至少1次;

\?:匹配前面的0次或1次,即前面的字符可有可无;(大于等于0,小于等于1)

\{m\}:其前面的字符出现m次,m为非负整数;

\{m,n\}:其前面的字符出现m次,m为非负整数;[m,n]

\{0,n\}:至多n次

\{m,\}:至少m次;

分组及引用

\(PATTERN\):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理。

Note:分组括号中的模式匹配到的字符会被正则表达式引擎自动记录于内部的变量中,这些变量是\1, \2, \3, ...

pat1\(pat2\)pat3\(pat4\(pat5\)pat6\)

\n:模式中第n个左括号以及与之匹配的右括号之间的模式所匹配到的字符串;(不是模式,而是模式匹配的结果)

\1:第一组括号中的pattern匹配到的字符串;

\2:第二组括号中的pattern匹配到的字符串;

……

后向引用:引用前面的分组括号中的模式所匹配到的字符;

egrep命令和扩展正则表达式:

egrep [OPTIONS] PATTERN [FILE...]

      注:常用选项与grep一致,参考上述grep的常用选项即可。

egrep和grep的区别地方:

+ : 表示匹配前面的字符至少一次

? : 等同于grep中的\?,在egrep中不需要转义

() : 等同于grep中的\(\),在egrep中不需要转义

{} : 等同于grep中的\{\},在egrep中不需要转义

分组及引用:

(pattern):分组,括号中的模式匹配到的字符会被记录于正则表达式引擎内部的变量中;后向引用:\1, \2, ...

| : 表示匹配符号两边的任意一边,比如a|b,表示匹配a或者b

注意,| 左右带括号和不带括号的区别

以上就是grep和egrep及正则表达式的简单用法。

时间: 2024-10-12 20:12:41

linux下的grep,egrep及正则表达式的相关文章

Linux 命令grep, egrep,正则表达式大全

Linux grep 命令     Linux系统中grep,egrep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本. 2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本. 3.fgrep : 快速grep,这个版

LINUX 下 find grep sed awk 的常见基本用法特点

LINUX 下 find grep sed awk 的常见基本用法特点 只为让自己具有更高的水准,这就开始了长达6个月的小白进阶路! 这几天学习linux基础命令有点犯蒙,尤其是对文件查找这块.所有我想把一些我觉得常用的实用的参数项总结下来,大神勿喷哈... 不到之处请大家指教,小女子在此谢过了. 一.find:命令用于查找文件系统中指定的文件,其命令格式为: 1.find pathname -options [ -print  -exec  -ok ... ] (1)find 命令的参数: p

windows下类似Linux下的grep命令

今天要查看windws下代理服务器有哪些IP连接过来,但使用 netstat -na 后出现很多连接会话,不方便查看. 想到Linux下的grep非常方便,于是网络上搜寻,还是有类似的命令findstr,改为 netstat -na | findstr 3128 方便很多.

linux学习之grep egrep 命令及正则表达式

有幸在马哥面授班学习linux,马哥常告诉我们要做就做到最好,希望通过这些博文把自己的学习经历和内容好好的记录下来,也算是复习. grep: Global search REgular expression and Print out the line. 文本搜索工具,根据用户指定的"模式(pattern)"对目标文本进行过滤,显示被模式匹配到的行. grep [OPTION]... 'PATTERN' FILE...  --color 正则表达式:由一类字符书写的模式,其中有些字符不

grep,egrep 及正则表达式

Linux中一切皆文件:文本文件,对文本文件的搜索就非常的关键和常用. Linux文本搜索工具:grep ,egrep,fgrep,文本搜索指文本文件中内容的搜索. 文件名的搜索是linux中bash的特性,globbing,文件名通配,有点windows中的搜索相似,但功能跟强大.一般配合 ls 命令使用.可参考视频:bash基础特性(01) globbing:中的元字符: *:用来通配任意长度任意字符,?:用来匹配单个字符,[]:用于比配指定范围内的字符,[^]:用于取反范围内的字符. 总结

Linux三剑客之grep伐木累(正则表达式)

一.Linux文本处理三剑客 Linux上有三种常用的文本处理工具,分别为:grep(egrep.fgrep).sed.awk.今天主要给大家介绍一下三剑客中的第一剑:grep伐木累. 二.grep是什么? grep 全称(Globally search a Regular Expression and Print)是一个文本搜索工具,基于"pattern"(这里指的是过滤模式,多指正则表达式)对给定的文本进行搜索. grep家族: grep:支持使用基本正则表达式: egrep:支持

grep , egrep 以及正则表达式

一.什么是正则表示法? 正则表达式:由一类字符书写的模式,其中有些字符不表示字符的字面意义,而是表示控制或通配的功能: 正则表达式分为两类:基本正则表达式和扩展正则表达式: ------------------------------------------------------ 注:本文以grep为例来讲解正则表达式. (1)基本正则表达式: 字符匹配: 字符: 字符说明: . 匹配任意单个字符 [] 匹配任意单个字符 [[:digit:]], [0-9] 所有数字 [[:lower:]],

linux常用命令-grep,egrep,regexp

grep: 根据模式搜索文本,并将符合模式的文本行显示出来.Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PATTERN [FILE...] -i(忽略大小写) [[email protected] ~]# grep root /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[[email protected] ~]# --c

grep/egrep和正则表达式汇总

grep, egrep, fgrep 语法格式: grep [option] ... 'PATTERN' FILE --color=auto 对目标FILE进行搜索,显示能够匹配的行 正则表达式 基本正则: grep 扩展正则: grep -E 或者 egrep fgrep: fast但是不支持正则表达 基本正则表达式的元字符: 字符匹配: .  匹配任意单个字符 [] 匹配指定范围内的单个字符 [0-9], [[:digit:]] 单个数字 [a-z], [[:lower:]] 单个小写字符