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

Linux grep 命令


    Linux系统中grep,egrep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本。

2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本。

3.fgrep : 快速grep,这个版本匹配固定字符串而非正则表达式。并且是唯一可以并行匹配多个字符串的版本。

grep语法格式:

             grep [option]... ‘PATTERN‘ FILE...


options:

-E : 使用扩展正则表达式进行匹配, grep -E 或取代 egrep 命令。

-F : 使用固定字符串进行匹配, grep -F 或取代传统的fgrep命令。

-A #:显示匹配字符串的后面所有行。

-B #:显示匹配字符串的前面所有行。

-C #:显示匹配字符串的前面后面的行。

-e : 通常第一个非选项的参数认为是要匹配的模式,也可以同时提供多个模式,只要将其放入单引号,并用换行字符分隔他们。

  模式以减号开头时,为防止混淆其为选项,-e选项说明其后的参数为模式,即使他以减号开头。

-f : 从pat-file文件读取模式作为匹配。

-i : 模式匹配时忽略大小写差异。

-l : 列出匹配模式的文件名称,而不是打印匹配的行。

-q : 静默的,如果匹配成功,不将匹配的行输出到标准输出;否则即是不成功。

-s : 不显示错误信息,通常与-q并用。

-v : 取反。

-o: 仅显示匹配的字串,而非字串所在的行。

--color=auto: 匹配的字符出现颜色。

-n:显示匹配行及行号。

-c 只输出匹配行的计数。

说明:可以同时查找多个文件中的内容,当指定多个文件时,每个显示出的文件行前会有文件名加一个冒号标识其来自哪个文件。

可以使用多个-e 或 -f 选项,建立要查找的模式列表。


正则表达式

相关资料:http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F

是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能;

元字符:

不表示其字面意义,而用于额外功能性描述

正则表达式:

正则表达式引擎

基本正则表达式:没有特殊意义的字符     grep

扩展正则表达式: 元字符,有在正则表达式中有特殊意义   egrep,grep -E

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

字符匹配

.: 匹配任意单个字符

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

[0-9], [[:digit:]]    : 数字字符

[a-z], [[:lower:]]    :小写字母字符

[A-Z], [[:upper:]]    :大写字母字符

[[:space:]]    :空格字符

[[:punct:]]    :标点符号字符

[[:alpha:]]    :字母字符

[[:alnum:]]    :数字字符

次数匹配元字符:用于实现指定其前面的字符所能够出现的次数

*: 任意长度,它前面的字符可以出现任意次

例如:a*b

aab, abb, b,

\?: 0次或1次,它前面的字符是可有可无的

例如:a\?b

ab, b, cb

\{m\}: m次,它前的字符要出现m次

例如:a\{2\}b

ab, aab, b, aaaab, abb

\{m,n\}: 至少m次,至多n次

例如:a\{2,5\}b

ab, b, aab

\{m,\}:至少m次

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

位置锚定

^ : 行首锚定;匹配紧接着的正则表达式,BRE中仅在正则表达式的开头有特殊的含义,ERE中在任何位置都有特殊含义

写在模式最左侧

$: 行尾锚定:匹配前面的正则表达式,在字符串或者行结尾处。BRE中仅在正则表达式的结尾处有特殊的含义,ERE中在任何位置都有特殊含义

写在模式最右侧

^$:  匹配空白行

\   :  通常用于打开或关闭后续字符的特殊含义,如\(...\)与\{...\}

[]  : 匹配方括号内的任一字符,其中可用连字符(-)指的连续字符的范围;^符号苦出现在方括号的第一个位置,则表示匹配不在列表中的任一字符,

不包含特殊字符的连续字符组成的串叫单词:

\<: 词首,出现于单词左侧,\b

\<char

\>: 词尾,出现于单词右侧, \b

char\>

扩展正则表达式:

字符匹配:

.

[]

[^]

次数匹配:

*:任意次

?: 0次或1次

+: 至少1次

{m}: 精确匹配m次

{n,m}: \{n\}指重现n次;\{n,m\}指重现n至m次

{m,}:至少m次

{0,n}:至多n次

锚定:

^

$

\<, \b

\>, \b

^$, ^[[:space:]]*$

分组:

()

引用:\1, \2, \3

或者:

a|b: a或者b

con(C|c)at

concat或conCat?

conC或cat

grep -E  ‘PATTERN‘ FILE...

egrep ‘PATTERN‘ FILE...

常用Linux/Unix工具中的表示法


PCRE记法


vi/vim


grep


awk


sed


*


*


*


*


*


+


\+


\+


+


\+


?


\=


\?


?


\?


{m,n}


\{m,n}


\{m,n\}


{m,n}


\{m,n\}


\b *


\< \>


\< \>


\< \>


\y \< \>


(…|…)


\(…\|…\)


\(…\|…\)


(…|…)


(…|…)


(…)


\(…\)


\(…\)


(…)


(…)


\1 \2


\1 \2


\1 \2


不支持


\1 \2

注:PCRE中常用\b来表示“单词的起始或结束位置”,但Linux/Unix的工具中,通常用\<来匹配“单词的起始位置”,用\>来匹配“单词的结束位置”,sed中的\y可以同时匹配这两个位置。

实例:

   1,显示文件中以大写或小写c开头的行

   

2,显示文件中以r开头的行

3,将文件行尾为(2)结尾的显示出来

4,搜索文件中r与t之间有2-3个o存在的字符串

5,搜索重复一个或一个以上的字符串如

6,ifconfig命令可以显示当前主机的IP地址相关的信息等,如果使用grep等文本处理命令取出本机的各IP地址,要求不包127.0.0.1;

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

时间: 2024-10-05 05:07:16

Linux 命令grep, egrep,正则表达式大全的相关文章

linux命令grep及正则表达式

linux 命令grep正则表达式

Linux 命令grep正则表达式 在linux里面有处理文本的三剑,现在我要说的就是grep正则表达式的使用,正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串.vi grep ,awk ,sed 等都支持正则表达式..正则表达式有基本正则表达式和扩展正则表达式. grep默认就是基本表达式. 基本正则表达式: 默认匹配次数:贪婪模式,尽可能多的去匹配. 扩展正则表达式:基于基本正则表达式多加了一些功能,基本一样. 1. grep命令 grep [参数]

Linux中 文本处理命令 grep egrep fgrep的使

个人见解:我认为Linux中的文本处理命令 grep egrep fgrep命令 其实只要牢牢掌握grep就可以了 因为其他两个几乎是一样的 不一样的地方也很好区分 grep 基本使用方法: 使用方法 grep [选项] '表达式' #学习的时候没好好听 不知道自己写错没 为了这篇博文的通常 我还是先不看之前学习的视频了这里的常用选项有 -o -v -i -n -A -B -C -数字 -E [email protected]:~# grep -o '^root:' /etc/passwd #-

[Linux 006]——grep和正则表达式

在使用系统时,我们或多或少的有一些搜索.查找的需求,必须要在文本中搜索某个关键字,或者过滤出文本中某些特定的行.grep 命令就为我们提供了这样一个功能,同时,grep 还可以使用正则表达式进行匹配,这是一个强大的功能,有必要好好掌握. 1.grep 初体验 grep PATTERN [OPTIONS] FILE:在文件中按照模式进行查找.FILE 是我们要查找的目标文件,如果不指定目标文件,grep 将会从标准输入中读取输入的内容,然后进行匹配.为了方便起见,本文的所有演示都在命令行中通过标准

shell命令--grep/egrep

shell命令--grep/egrep 0.grep/egrep命令的专属图床 点此快速打开文章[图床_shell命令grep/egrep] 1.grep/egrep命令的功能说明 ? grep命令是Linux系统中最重要的命令之一,其功能是从文本文件或管道数据流中筛选匹配的行及数据,如果配合正则表达式技术一起使用,则功能更加强大.egrep 是 grep 的扩展正则. 2.grep/egrep命令的语法格式 SYNOPSIS grep [OPTIONS] PATTERN [FILE...] g

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

linux 命令grep

grep命令用来搜索文本,或从给定的文件中搜索行内包含了给定字符串或单词的文件.通常来说,grep显示匹配的行.使用grep来搜索包括一个或多个正则表达式匹配到的文本行,然后只显示匹配到的行. grep命令的语法: grep  ‘word’  文件名 grep  ‘word’  文件1  文件2  文件3 grep  ‘字符串1  字符串2’  文件名 commad  |  grep  ‘ 某个东西 ’ commad  选项1  |  grep  ‘ 数据 ’ grep  --color  ‘数

Linux 命令 - grep: print lines matching a pattern

grep 搜索文本文件中与指定正则表达式匹配的行 命令格式 grep [OPTIONS] PATTERN [FILE...] 命令参数 Generic Program Information --help 打印帮助信息 -V, --version 打印版本信息 Matcher Selection -E, --extended-regexp 使用基本正则表达式(ERE)解释 PATTERN -F, --fixed-strings 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式.

Linux命令:grep命令 文本搜索

linux grep命令 (global search regular expression(RE) and print out the line )是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep这个应用程序最早由肯·汤普逊写成.grep原先是ed下的一个应用程序,名称来自于g/re/p(globally search a regular expression and print,以正规表示法进行全域查找以及打印). grep是非常强大的命令,配合管道一起使