五. 正则表达式grep, egrep, fgrep

grep,egrep,fgrep : print lines matching a pattern

1.grep :

  grep [options] PATTERN FILE...

  PATTERN由元字符和和普通字符组成

  -i : --ignore-case , 忽略大小写

  -o : --only-matching, 只显示所匹配到的字符,二不是整行

  -n : --line-number, 输出所匹配行的行号

  -v : --invert-match, 显示除匹配行外的所有行

  -E : --extended-regexp, egrep

  -F : --fixed-strings, fgrep

  -P : --per-regexp

  -A NUM : --after-context, 显示匹配行后NUM行

  -B NUM: --before-context,显示匹配行强NUM行

  -C NUM: --context,显示匹配行前、后NUM行

  元字符

    匹配字符:

      . : 匹配任意单个字符

      [],[^] : 匹配指定的单个字符

        [0-9], [[:digit:]] : 匹配单个数字

        [[:alpha:]] : 匹配单个大、小写字母

        [[:lower:]] : 匹配单个小写字母

        [[:upper:]] : 匹配单个大写字母

        [[:alnum:]] : 匹配单个数字或字母

        [[:bank:]] : 匹配单个空白字符

        [[:punct:]] : 匹配标点符号

        [[:contrl:]] : 匹配当控制字符

        [[:xdigit:]] : 匹配单个16进制数

    匹配次数:用来指定前面的字符出现的次数

      * : 任意次数,包括0次

      \+ : 至少一次

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

      \{m\}, \{0,n\}, \{m,n\}, \{m,\} : 分别指m次,最多n次,m-n次,最少m次

      .* : 任意长度,任意字符

    位置锚定:

      ^ : 行首锚定,模式左侧

      $ : 行尾锚定,模式右侧

      \< : 词首锚定,单词模式左侧,单词指由数字和字母构成的字符串

      \> : 词尾锚定,单词右侧

        ^PATTERN$, 匹配整行只有指定的模式

        ^$ : 空行

        ^[[:blank:]]$ : 整行无可见字符

        \<word\> : 匹配整个单词

    分组

      \(\) 将任意个字符用括号括起来做一个整体进行匹配

      后向引用:应用前面分组括号所匹配的内容,非模式本身, \1,\2 ...

        \(th\).*\1 : 匹配第一个括号所匹配的内容

    

2. egrep : 等同于 grep -E 

  egrep [options] PATTERN FILE...

  PATTERN由元字符和和普通字符组成

  -i : --ignore-case , 忽略大小写

  -o : --only-matching, 只显示所匹配到的字符,二不是整行

  -n : --line-number, 输出所匹配行的行号

  -v : --invert-match, 显示除匹配行外的所有行

  -A NUM : --after-context, 显示匹配行后NUM行

  -B NUM: --before-context,显示匹配行强NUM行

  -C NUM: --context,显示匹配行前、后NUM行

  PATTERN由元字符和和普通字符组成

  元字符

    匹配字符:

      . : 匹配任意单个字符

      [],[^] : 匹配指定的单个字符

        [0-9], [[:digit:]] : 匹配单个数字

        [[:alpha:]] : 匹配单个大、小写字母

        [[:lower:]] : 匹配单个小写字母

        [[:upper:]] : 匹配单个大写字母

        [[:alnum:]] : 匹配单个数字或字母

        [[:bank:]] : 匹配单个空白字符

        [[:punct:]] : 匹配标点符号

        [[:contrl:]] : 匹配当控制字符

        [[:xdigit:]] : 匹配单个16进制数

    匹配次数:用来指定前面的字符出现的次数

      * : 任意次数,包括0次

      + : 至少一次

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

      {m}, {0,n}, {m,n}, {m,} : 分别指m次,最多n次,m-n次,最少m次

      .* : 任意长度,任意字符

    位置锚定:

      ^ : 行首锚定,模式左侧

      $ : 行尾锚定,模式右侧

      \< : 词首锚定,单词模式左侧,单词指由数字和字母构成的字符串

      \> : 词尾锚定,单词右侧

        ^PATTERN$, 匹配整行只有指定的模式

        ^$ : 空行

        ^[[:blank:]]$ : 整行无可见字符

        \<word\> : 匹配整个单词

    分组

      () 将任意个字符用括号括起来做一个整体进行匹配

      后向引用:应用前面分组括号所匹配的内容,非模式本身, \1,\2 ...

        (th).*\1 : 匹配第一个括号所匹配的内容

3.fgrep : 不支持正则表达式, 仅匹配指定的字符串

  fgrep [optings] PATERN File...

时间: 2024-10-08 13:13:23

五. 正则表达式grep, egrep, fgrep的相关文章

通配符和正则表达式-grep,egrep,fgrep

通配符和正则表达式-grep,egrep,fgrep 通配符和正则表达式,通配符用于文件名匹配,命令支持ls,cp,rm等;正则为通用匹配,命令支持grep,awk,sed,vi,find等.文本过滤工具grep,egrep,fgrep 通配符 *  匹配零个或多个任意字符 ?  匹配单个任意字符 [] 匹配指定范围内的一个字符,[]括号中的 字符间隔符 可以省略,如,\=:等等.举例[1:2=3,5\7] = [12357],也推荐使用这种省略写法作为标准 ^  取反,表示非.注意:非数字即包

Linux中的正则表达式 grep egrep fgrep

正则表达式: REGEXP REGuler EXPression,使用元字符和其他字符串来描述.匹配一系列符合某个句法规则的字符串.默认尽可能长得匹配(贪婪模式). 元字符: .:匹配任意单个字符(文件名通配中?表示任意单个字符) []:匹配指定范围内的单个字符 [^]:匹配指定范围外的单个字符 [:space:]:空白字符 [:puntt:]:所有标点符号 [:upper:]:所有大写字母 [:lower:]:所有小写字母 [:alpha:]:所有大小写字母 [:digit:]:所有数字 [:

grep, egrep, fgrep笔记

grep, egrep, fgrep grep: 根据模式搜索文本,并将符合模式的文本行显示出来.Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PATTERN [FILE...]    -i:不区分大小写    --color    -v: 显示没有被模式匹配到的行    -o:只显示被模式匹配到的字符串 *: 任意长度的任意字符?: 任意单个字符[]:[^]: 正则表达式:REGular EXPression, REGEXP元字符:.: 匹配任意

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 #-

文本进行搜索:grep egrep fgrep

grep名称来自于g/re/p(globally search a regular expression and print,以正规表示法进行全域查找以及打印),是一个最初用于Unix操作系统的命令行工具.在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本. 命令名称:grep, egrep, fgrep命令作用:print lines matching a pattern命令用法:grep [OPTIONS] PATTERN [

grep egrep fgrep的使用

grep命令 grep [options] PATTERN [FILE...] 通过搜索于PATTERN匹配的字段,在FILE文件中查找到匹配的字段并显示整个行. options -A num:文本后几行 # grep -A 3 "root" /etc/passwd            root:x:0:0:root:/root:/bin/bash        bin:x:1:1:bin:/bin:/sbin/nologin        daemon:x:2:2:daemon:/

Linux学习之正则表达式&grep&egrep

我们经常需要在文档中搜索符合自己要求的内容,这些部分可能分散在文档的各个位置,各个角落.可以利用关键字例如/keyword或者?keyword一个一个的搜索,还有我可能不止想搜索关键字,而是指定一个范围,怎样操作?而且怎样把这些搜索到的内容集中地显示出来?使用正则表达式搜索字串的grep命令和egrep命令就可以满足我们的这个要求. 正则表达式(Regular Expression)是一种字符书写的模式,以行为单位进行字符的处理,透过一些特殊字符的辅助,利用这种模式可以轻易地达到对字符的搜索.删

linux基本命令grep egrep fgrep用法以及正则表达式

1.1.基本定义:  www.2cto.com grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串数据的比较,然后符合用户需求的字符串打印出来,但是主意,grep在数据中查找一个字符串时,是以"整行"为单位进行数据筛选的. egrep命令等同于grep

【转载】grep,egrep,fgrep详解

[转载自]http://blog.csdn.net/homking/article/details/6000711 egrep 等价于 grep -E fgrep 等价于 grep -F grep -e xxx -e yyy 可以指定多个条件并且可以包含- grep -A 3  打印匹配行及匹配行前3行 grep -B 3  打印匹配行及匹配行后3行 grep -C 3  打印匹配行及匹配行前后3行 grep --color=auto 匹配项高亮  可在~/.bashrc里添加alias 这组命