Linux文本三剑客之grep

grep: Global search REgular expression and Print out the line.

作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行

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

REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能

分两类:

基本正则表达式:BRE

扩展正则表达式:ERE(grep -E, egrep)

正则表达式引擎

grep [OPTIONS] PATTERN [FILE...]

选项:

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

-v: 显示不能够被pattern匹配到的行

-i: 忽略字符大小写

-o: 仅显示匹配到的字符串

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

-A #:after, 后#行

-B #: before, 前#行

-C #:context, 前后各#行

-E:使用ERE

基本正则表达式元字符:

字符匹配:

.: 匹配任意单个字符

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

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

[:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:]、[:punct:]、[:space:]

匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数

*:匹配前面的字符任意次

例如: grep "x*y"

abxy、xay、xxxxxxy

贪婪模式:匹配到最多符合条件的字串符

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

\?:匹配其前面的字符0或1次;即前面的可有可无

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

\{m\}:匹配前面的字符m次

\{m,n\}:匹配前面的字符至少m次,至多n次

\{0,n\}:匹配前面的字符至多n次

\{m,\}:匹配前面的字符至少m次

位置锚定:

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

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

^PATTERN$: 用于模式匹配整行

^$: 空行

^[[:space:]]*$

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

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

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

分组:

\(\):将一个或多个字符捆绑在一起,当作一个整体进行处理

\(xy\)*ab

Note: 分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, ...

\1: 从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符

\(ab\+\(xy\)*\):

\1: ab\+\(xy\)*

\2: xy

后向引用:引用前面的分组括号中的模式所匹配字符,(而非模式本身)

egrep及扩展的正则表达式

egrep = grep -E

egrep [OPTIONS] PATTERN [FILE...]

扩展正则表达式的元字符:

字符匹配:

.:匹配任意单个字符

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

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

次数匹配:

*:任意次

?:0或1次

+:1次或多次

{m}:匹配m次

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

锚定:

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

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

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

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

分组:

():将一个或多个字符捆绑在一起,当作一个整体进行处理

后向引用:\1, \2, ...

或者:

a|b:a或者b

C|cat: C或cat

fgrep:不支持正则表达式搜索

时间: 2024-10-05 15:05:53

Linux文本三剑客之grep的相关文章

linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)

    运维工程师在做配置的过程中很多时候都需要去获取目标服务器网卡上的IP地址,那究竟用什么方式获取更便捷了,博主今天就带大家使用linux文本三剑客分别获取一下网卡的IP地址,最后我们再来对比一下. 实验环境: 系统:CentOS 7.2 网卡张数:双网卡 linux文本三剑客之grep 获取ifconfig输出中的IP地址 ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\

llinux文本三剑客之grep、egrep及相应的正则表达式和用法

Linux文本三剑客之grep族以及相应的正则表达式 Grep族是什么? Grep族是linux学习中搜索文本的重要工具,它基于使用正则表达式来快速简洁的搜索你想要查看的文本.是搜索文本的不二之选 什么时候及在哪里使用grep呢? 上面咱们说到了,grep是文本搜索工具,所以当我们要搜索文本,有搜索文本的需要时我们就可以是使用grep工具. 下面我们来谈谈如何使用grep族命令以及涉及到的正则表达式的内容 文本搜索工具:grep族:grep, egrep, fgrep Linux上文本处理三剑客

linux 文件管理和文本三剑客之一grep,以及正则的使用

1:文件权限 用户对文件的访问有三种:r(读),w(写),x.对于文件和目录有点区别. 文件: r:使用文本查看工具可以查看其文件内容. w:使用文本编辑工具可以编辑其文件内容. x:可向内核请求将此文件运行为进城执行. 目录: r:可以使用ls命令列出文件下子目录和文件的列表. w:可以在此目录中创建和删除文件. x:可使用'ls -l'命令列出目录及子目录的文件属性,可以使用cd切换工作目录为制定目录. 文件权限主要针对三类对象进行定义. owner:属主  , group:属组, othe

Linux文本处理之grep

Linux 文本处理之grep       我们经常会遇到只需要一个文件里的只言片语,比如从文件里获取一串字符或者样式,可以用cat +文件一个一个找,这样不仅效率低,而且海量的字符会让你奔溃的.这个时候需要了解一下文本处理三剑客,分别是 grep 文本过滤工具 :sed 文本编辑工具 :awk 文本报告生成器. 1.grep 英文全拼:Global search REgular expression and Print out the line(全面搜索正则表达式并把行打印出来).grep是每

Linux文本处理工具——Grep

Grep简介 全名:Global search Regular expression and Print out the line. 功能:文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行. Linux的三大文本处理工具之一,可以说学好grep命令无疑是重要的,可以说学好grep也是不容易的,因为grep里面要用到最烦人的正则表达式. grep语法格式 grep [option]... 'PATTERN' FILE... [option]:表示可以跟选项,

文本三剑客(grep、sed、awk)

文档:文本三剑客(grep.sed.awk).note链接:http://note.youdao.com/noteshare?id=d6b2cb636b40803cf543f3f0b44bed9f&sub=1D4DA6B89EC74E9597672AADF0CE3894 原文地址:https://blog.51cto.com/12928116/2407036

Linux文本三剑客超详细教程---grep、sed、awk

awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理. 1.grep 1.1 什么是grep和egrep Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红).grep全称是Global

Linux文本处理工具grep

文件查看工具:cat 将[文件]或标准输入组合输出到标准输出. -A, --show-all                                  等于-vET -b, --number-nonblank                           对非空输出行编号 -e                                              等于-vE -E, --show-ends                                 在每行结

Linux文本三剑客之awk的使用

文本处理三剑客: grep.egrep.fgrep:称为文本过滤工具 sed:称为流编辑器,行编辑器 awk:称为报告生成器,主要用于格式化文本输出 awk:Aho,Weinberher,Kernighan 由这个三个作者创建而成,最初是用在UXIN系统上面,后来被GNU组织不断对其进行更新,就形成了gawk,现在linux上用的都是gawk. [[email protected] tmp]# which awk /bin/awk [[email protected] tmp]# ll -d /