1 概念:
grep概念: 根据模式搜索文本,并将符合模式的文本行显示出来。 global reserch by expression
grep的特点:就是在某个行中找只要符合匹配的行就可以,就是做部分匹配的,不是整个单词匹配,显示的是整行数据,重点展示的是匹配到的那个字段。
grep使用的模式Pattern组成: 由文本字符和正则表达式的元字符组合而成匹配条件。
2 grep写法:
grep [options] PATTERN [FILE...]
-i: 忽略大小写
--color 匹配到的带颜色展示
-v: 显示没有被模式匹配到的行
-o:只显示被模式匹配到的字符串
eg: # grep --color -o 'a*b' test 如果匹配模式中没有正则表达式的元字符,那么PATTERN的单双引号不加都可以
3 模式Pattern使用到的正则介绍如下:
3.1 正则匹配范围:
*: 匹配其任意前面字符,前面字符出现次数为0到多次
?: 匹配其任意前面字符,前面字符出现0次或者1次 eg: # grep --color -o 'a\?b' test 需要使用转义逃逸符(让linux不执行被转义的那部分字符) 否则匹配不出来
[]: 指定范围内
[^]: 指定范围外
.*: 任意长度的任意字符(表示匹配前面.0或者多次 而.在正则中又表示任意单个字符 因此综合结果就是匹配任意长度字符)
\?: 匹配其前面的字符1次或0次
\{m,n\}:匹配其前面的字符至少m次,至多n次
\{1,\}: 至少一次
\{0,3\}: 至少0次,最多3次 eg: grep 'a\{1,3\}b' test.txt 表示去text.txt中找匹配到a至少出现1次最多出现3次后紧跟b的行
3.2 正则匹配特点(贪婪模式):
[root@chinadaas109 zhoumingtest]# cat test
ab
aab
abb
acbacb
[root@chinadaas109 zhoumingtest]# grep 'a*b' test 表示查找b前面出现字符a为0或者多次的单词,并将符合条件的单词打印出来
ab
aab
abb
acbacb 此时从开头到结尾都匹配到了,这就是正则匹配的默认模式,能匹配到多少就匹配到多少(贪婪模式)
3.3 正则元字符:(这些元字符本身没有含义,只是表示一些统配的含义)
.: 匹配任意单个字符
[]: 匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字符集合:
[:digit:], 数字
[:lower:], 小写字母
[:upper:], 大写字母
[:punct:], 标点符号
[:space:], 空白字符
[:alpha:], 所有字母
[:alnum:], 所有数字和字母
3.4 正则位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首
$: 锚定行尾,此字符前面的任意内容必须出现在行尾
^$: 空白行
\<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现 <--------> 类比于^ ,这个是表示行首,而 \<表示单词词首
\>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现 <--------> 类比于$ ,这个是表示行尾,而 \<表示单词词尾
位置锚定和正则元字符结合案例:
匹配passwd文件中以root开头的行 # grep '^root' /etc/passwd root:x:0:0:root:/root:/bin/bash 查询inittab文件内的空白行数 # grep '^$' /etc/inittab | wc -l 0 查询inittab文件内末尾为数字的行 # grep '[[:digit:]]$' /etc/inittab # 5 - X11
词首/词尾 测试案例:
\<root\> 表示匹配整行中只有root这个单词的行 查询以root为行尾的行 # cat test ab aab abb acb rooter the user is root # grep 'root\>' test the user is root
3.5 正则分组:
写法: \(\) eg: \(ab\)* ---> *表示匹配的是ab这个整体 0次或者多次
分组的主要目的是--->后向引用(前面出现什么,后面就能引用到什么)
\1: 引用第一个左括号以及与之对应的右括号所包括的所有内容
\2: 引用第二个左括号以及与之对应的右括号所包括的所有内容
\3: 引用第三个左括号以及与之对应的右括号所包括的所有内容
案例:
# cat test he love his lover she like her lover he like his liker she love her liker # grep '\(l..e\).*\1' test ---> 反向引用的案例, 匹配 l..e中间是任意字符然后后面也要是前面l..e出现的内容的行 he love his lover he like his liker
相关推荐
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,它是计算机科学中一个强大的文本处理工具,尤其在数据处理、文本分析和搜索替换等场景中有着广泛的应用。正则表达式不仅可以用于简单的...
### 文本处理工具三剑客之——grep 在Linux系统管理与开发中,文本处理是一项极为重要的技能。作为文本处理的三大工具之一,`grep`以其强大的文本搜索能力而著称,尤其当它与正则表达式相结合时,能够极大地提高...
### 文本三剑客之grep及正则表达式 #### 1. grep 命令简介 - **定义**:`grep` 是 Linux 和 Unix 系统中的一种强大的文本搜索工具,它能够使用正则表达式来搜索文本,并将匹配的行打印出来。其全称是 Global ...
总之,grep 是一个强大而灵活的文本处理工具,结合正则表达式,它可以帮助用户快速定位和提取文本文件中的信息,是系统管理和数据分析的重要助手。通过熟练掌握 grep 和正则表达式的使用,可以在日常工作中大大提高...
在egrep和grep-E中,还有一些额外的元字符可供使用,如: - `+`:匹配一个或多个先前的字符。 - `?`:匹配零个或多个先前的字符。 - `|`:表示选择,即匹配左侧或右侧的表达式。 - `{m}`、`{m,}`、`{m,n}`:分别...
`grep` 是一款强大的文本搜索工具,它能够帮助用户快速地在文件中查找符合特定模式的字符串。结合正则表达式,`grep` 可以实现更为复杂精确的文本搜索任务。本文将详细介绍 `grep` 的基本使用方法以及如何利用正则...
grep 命令是 Linux 系统中最常用的文本处理工具之一,它可以根据用户指定的模式对目标文本逐行进行匹配检查,并打印匹配到的行。grep 命令的格式为:grep [OPTIONS] PATTERN [FILE...] 其中,OPTIONS 是可选参数,...
awk则更像一个编程语言,它可以处理列数据,进行复杂的文本分析和处理。 总而言之,grep是文本处理中的基础工具,它的模式匹配能力为sed和awk提供了坚实的基础。掌握grep的使用,将有助于你更高效地处理和分析文本...
`grep`命令就是这样一个强大的工具,它能帮助我们快速定位文本文件中的特定字符串或模式。本资源“Linux-系统随你玩之-grep查找文件内容-fyydlz.zip”包含了关于如何使用`grep`进行文本搜索的示例文件——fyydlz.txt...
在IT领域,文本处理是日常工作中不可或缺的一部分,而grep、sed、awk和perl这四个工具在处理文本时都广泛地使用了正则表达式。它们各自有着不同的特性和适用场景,理解它们之间的差异有助于我们更高效地进行文本操作...
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。Windows...
总之,grep-2.5.4-setup为Windows用户提供了在Windows系统上使用grep命令的能力,极大地扩展了他们在文本处理和日志分析方面的工具箱。通过熟练掌握grep的使用,Windows用户可以在处理大量文本数据时提高工作效率,...
正则表达式是一种强大的文本处理工具,它能够帮助用户方便地进行字符串的搜索、替换等操作。在 Linux 系统中,grep、sed 和 awk 都支持正则表达式的使用。正则表达式的核心是定义了一系列特殊的字符序列来匹配文本中...
在Linux Shell环境中,正则表达式常与grep、sed、awk等命令结合使用,以实现高效的数据筛选和处理。 1. 元字符:正则表达式的核心是元字符,它们具有特殊的含义。例如,`.`表示任意单个字符,`^`表示行首,`$`表示...
总的来说,cpp-TRE库和agrep工具为IT专业人士提供了一种强大且灵活的工具,能够处理复杂的文本匹配任务,尤其是在需要处理大量数据和模糊查询的场合。掌握并善用这个工具,可以极大地提升开发效率和项目质量。
《正则表达式之道》是一本深入浅出...学习《正则表达式之道》不仅可以提升你在编程和系统管理中的效率,还能让你更好地理解和处理日常遇到的文本数据问题。熟练掌握正则表达式,无疑会成为你IT技能树上的一颗璀璨明珠。
标题中的“grep-2.5.4-setup”和“gvim80.zip”指的是两个流行的开源软件工具在Windows平台上的安装程序。`grep`是一款强大的文本搜索工具,源自Unix/Linux系统,而`vim`则是一款高度可配置的文本编辑器,同样起源于...