grep用法详解-grep与正则表达式,grep命令使用正则表达式实例,linux grep正则表达式与grep用法详解

grep用法详解:grep与正则表达式,grep命令使用正则表达式实例,linux grep正则表达式与grep用法详解

首先,我们要记住,正则表达式不同于通配符,它们的含义是不同的。正则表达式应用广泛,但你们很少有人整理过。下面,我们小编整理了正则表达式的描述,比较详细,可以分享给大家。感兴趣的朋友可以参考一下。

我们应该记住,正则表达式不同于通配符,它们意味着不同的东西。

正则表达式只是对一个字符串的描述,只有结合支持正则表达式的工具才能进行字符串处理。本文以grep为例讲解正则表达式。

Grep命令

函数:在输入文件的每一行中查找字符串。

基本用法:

grep[-acinv][-color=auto][-a n][-b n]'搜索字符串'文件名

参数描述:

-a:将二进制文档作为文本处理。

-c:显示匹配的数量。

-i:忽略大小写差异。

-n:在行首显示行号

-a: after表示显示匹配字符串后N行的数据。

-b: before表示显示匹配字符串的前N行数据。

-v:显示无匹配行的含义-a:后,显示匹配部分后n行的含义-b:前,显示匹配部分前n行的含义。

- color:用特定颜色突出显示匹配的关键字。

color选项是一个非常好的选项,它可以让您清楚地了解哪些字符是匹配的。最好包含在自己的中。巴沙尔或者。bash_profile文件:

别名grep=grep - color=auto

每次grep搜索后,匹配效果会自动突出显示。

“搜索字符串”是一个正则表达式。注意,为了避免shell元字符对正则表达式的影响,请用单引号(')将其括起来。千万不要用双引号(')或not把它括起来。

正则表达式分为基本正则表达式和扩展正则表达式。下面简单总结一下。

基本正则表达式

正则表达式学习主要是正则表达式元数据的学习。正则表达式本身并没有什么深刻的东西。本文只总结了基本正则表达式的元数据:

扩展正则表达式

Grep一般支持基本正则表达式,通过parameter-e可以支持扩展正则表达式,另外grep单独提供了一个名为egrep的扩展命令来支持扩展正则表达式,相当于grep -E e,虽然一般情况下基本正则表达式就足够了。在特殊情况下,复杂的扩展表达式可以简化字符串匹配。

扩展正则表达式是在基本正则表达式的基础上,增加了一些元数据。

以下Linux正则表达式博大精深,以上支持总结了最常用的部分。如果你熟悉上面部分的正则表达式,基本可以满足你的日常使用。

其他很多Linux命令都支持正则表达式,比如find、sed、awk等等。使用正则表达式时,请参考这些命令的手册。

Linux grep正则表达式

Grep正则表达式元字符集:

定位行的开头如下:“grep”匹配所有以grep开头的行。

$ anchor行的结尾如下:' grep$ '匹配所有以grep结尾的行。匹配非换行符的字符,如“gr.p”匹配gr后跟任意字符,然后是p。

*匹配零个或多个前面的字符,如' *grep ',匹配所有一个或多个空格,后跟grep行。*一起使用来表示任意字符。

[]匹配指定范围的字符,例如'[Gg]rep '匹配grep和Grep。

[]匹配不在指定范围内的字符,例如:'[A-FH-Z] rep '匹配不包含A-R和T-Z的字母的开头,并紧跟在rep的行之后。

\ (.\)标记匹配字符,如' \(love\)',love标记为1。

\锁定单词的开头,例如:' \匹配包含以grep开头的单词的行。

\锁定单词的结尾,例如“grep”匹配包含以grep结尾的单词的行。

X\{m\}重复字符x,m次,例如:“0\{5\}”匹配包含5个O的行。

X\{m,\}将字符X重复至少m次,例如:' o\{5,\} '匹配至少有5个O的行。

X\{m,n\}重复字符X至少m次,不超过n次,例如:' o\{5,10\} '匹配5-10个O的行。

\w匹配文字和数字字符,即[A-Za-z0-9],例如:' G\w*p '匹配G后面跟零个或多个文字或数字字符,后面跟p。

\b单词锁,如' \bgrep\b '只匹配grep。

常用的 grep 选项有:

-c只输出匹配行数。

-i不区分大小写(仅用于单个字符)。

-h查询多个文件时不显示文件名。

-l查询多个文件时,仅输出包含匹配字符的文件名。

-n显示匹配的行和行号。

-s不显示没有或没有匹配文本的错误消息。

-v显示不包含匹配文本的所有行。

-V显示软件版本信息。

使用grep匹配时,最好使用双引号,防止系统误认为是参数或特殊命令,或者匹配多个单词。

关于匹配的实例:

Grep -c '48' test.txt计算所有以“48”字符开头的行数。

Grep -i 'May' test.txt不区分大小写查找“May”的所有行)

Grep -n '48' test.txt显示行号;显示与字符“48”匹配的行和行号,与nl test.txt |grep 48相同)

Grep -v '48' test.txt显示输出并不包含所有带有字符“48”的行)

Grep '471' test.txt显示输出字符“471”所在的行)

grep ' 48'Test.txt显示输出以字符“48”开始,在字符“48”之后是tab键所在的行。

Grep '48[34]' test.txt显示其输出以字符“48”开始并且第三个字符是“3”或“4”的所有行)

Grep' [48]' test.txt显示输出行首不是字符“48”的行)

Grep '[Mm]ay' test.txt设置大小写搜索:显示输出的第一个字符以“m”或“m”开始并以字符“ay”结束的行)

Grep 'K…D' test.txt显示输出的第一个字符是“K”,第二、三、四个是任意字符,第五个字符是“D”所在的行)

Grep '[A-Z][9]D' test.txt显示第一个字符的范围是“A-D”,第二个字符是“9”,第三个字符是“D”。

Grep '[35].' 1998' test.txt显示第一个字符是3或5,第二个和第三个字符是任意的并以1998年结束的所有行。

Grep '4\{2,\}' test.txt模式出现概率搜索:显示输出字符“4”至少重复两次的所有行。

Grep '9\{3,\}' test.txt模式出现概率搜索:显示输出字符“9”至少重复三次的所有行。

Grep '9\{2,3\}' test.txt模式出现概率搜索:显示输出字符“9”重复出现的次数在一定范围内,所有行重复出现2或3次。

Grep -n '^$'测试。txt显示空白输出行的行号。

Ls -l |grep '^d'如果要查询目录列表中的目录,与:ls -d *相同

Ls-l | grep' d [d]'查询目录中不包含目录的所有文件。

Ls-l | grpe' d.x.x '查询其他用户和用户组成员具有可执行权限的目录集合。

上面介绍的Grep和正则表达式以及linux grep正则表达式,希望大家喜欢。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: