基本正则表达式grep命令使用

grep(Global search REgular expression and Print out the line.)是一个文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行。

使用man命令查看grep使用语法格式:

grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] 

其中option为grep命令的选项,pattern为要匹配的简单字符串或携带特殊字符的模式字符串,file为文件列表,可有多个文件。

例如:   ls /etc | grep ‘*p‘  查找输入内容中含有字母p

linux针对grep查询结果输入时高亮显示参数设置:alias grep=‘grep --color=auto‘

正则表达式:

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

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

基本正则表达式的元字符:

1、 字符匹配:

.:匹配单个字符  grep ‘r..t‘ /etc/passwd

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

[0-9],[[:digit:]]:  所有数字

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

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

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

[[:punct:]]  :特殊字符,标点符号

[[:alpha:]]  :所有大小写字母

[[:alnum:]]  :所有数字字母

[^]:取反

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

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

例如:x*y

xxy,xyy,y,

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

例如:x\?y

xy,y,ay

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

例如:x\{\2}y

xy,xxy,y,xxxxy匹配子串

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

例如:x\{2,5}

xy,y,xxy

\{m,\}:至少m次

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

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

工作于贪婪模式:尽可能多的去匹配

 3、 位置锚定:

^:行首锚定

写在模式最左侧

$:行尾锚定

写在模式最右侧

^$: 空白行    grep ‘^$‘  /etc/issue | wc -l

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

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

\<char

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

char\>

\<char\>:前后都锚定

 4、分组:

\(\)

例如:\(ab\)*

分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,

   5、引用:

例如\(ab\(x\)y\).*\(mn\)

有编号:自左而右的左括号,以及与其匹配的右括号

\(a\(b\(c\)\)mn\(x\)\).*\1

\#:引用第n个括号所匹配到的内容,而非模式本身

例如:

\(ab\?c).*\1

    grep命令选项:

-v:反向选取       例如: grep -v ‘^$‘ /etc/issue

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

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

-E:支持使用扩展正则表达式

-A #  前一行

-B #  后一行

-C #  显示上下文

--color=auto 将pattern在匹配行中高亮输出

注意:

(1).选项区分大小写
        (2).多个选项可以一起使用

时间: 2024-08-03 02:49:27

基本正则表达式grep命令使用的相关文章

正则表达式-grep命令

1. 基本的正则表达式  grep  ^a      表示匹配以a开头的行; a$ 表示匹配以a结尾的行; ^$ 表示空白行; . 表示匹配任意一位字符; * 表示匹配其前面字符的任意次(可以是0次); .* 表示匹配任意字符任意次; \?     表示匹配前面字符1次或0次; a\{3,5\}表示匹配前面字符的至少3次,最多5次; [a-z]   表示匹配任意一个字母; [a-Z]   表示匹配任意一个字母(不区分大小写); [1-9] 表示匹配任意数字; [^1-9]  表示匹配不是数字;

Linux &nbsp; &nbsp; grep命令,正则表达式

grep命令及正则表达式 grep命令 grep , egrep , fgrep grep,sed,awk 文本处理三剑客 grep: Global search REgular expression and Print out the line;全面查找正则表达式并将匹配到的行显示出来; 正则表达式 正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用;许多程序设计语言都支持利用正则表达式进行字符串操作; 主流的正则引擎又分为三类:DFA;传统型NFA;POSIX NFA; DFA

Linux正则表达式grep与egrep

Linux正则表达式grep与egrep 正则表达式:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容.其实正则表达式,只是一种思想,一种表示方法.只要我们使用的工具支持表示这种思想那么这个工具就可以处理正则表达式的字符串.常用的工具有grep, sed, awk,这三个都是针对文本的行才操作的. grep  过滤器语法: grep  [-cinvABC]  'word'  filenam

正则表达式grep、egrep、fgrep

日期: 2015年08月27日 正则表达式: (RegularExpression,在代码中常简写为rex.regexp或RE) 正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.通常被用来检索.替换符合某个模式的文本. 正则表达式是指一类字符书写的模式(pattern)这些字符成为元字符,元字符不表示其字面意义,而用于表示通配或控制功能. 正则表达式包括两类:基本正则表达式,扩展正则表达式 grep命令只支持基本正则表达式: egrep支持扩展正则表达式("e" 表

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

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

grep命令以及正则表达式,算数运算.

最近一段时间一直在学习算术运算和正则表达式以及条件判断,连续看了四五遍,基本概念已经能够搞清楚了,实际操作中容易把正则表达式和算术运算以及条件判断混淆.看来还是要勤加联系.今天终于是有勇气来总结这两周的学习.在这之前,因为在练习这些逻辑概念性的知识经常会用到grep命令.首先介绍一下grep. 格式:grep [options] 'PATTERN' file,... grep: 文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,显示文件中能够被模式所匹配到的行. 模式PATTERN:指

正则表达式2&mdash;&mdash;grep命令

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

grep命令以及正则表达式

grep以及正则表达式 Grep 根据模式(文本字符和正则表达式的元字符组合而成匹配条件)搜索文本,并将符合模式的文本行显示出来. 1.1grep家族: grep:基本正则表达式使用的命令 egrep:扩展正则表达式使用的命令 fgrep(fast grep):不支持正则表达式,在没有正则表达式的字符串中的使用效率非常高,cup资源消耗少 1.2grep命令格式 grep  [options] PATTERN [FILE...] 1.2.1option -i忽略大小写 --color:对匹配出来

grep命令与正则表达式(过滤)一

首先,我们来了解grep命令,grep (global search regular expression and printing),全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Linux中的grep命令包括.grep, egrep和fgrep .egrep是grep的扩展,支持更多的re元字符,fgrep就是fast grep,搜索字符比较快,但不支持正则表达式. 然后,我们再来熟悉一下grep命令,其命令格式为:grep [