Linux中的文本搜索工具grep与egrep的用法

本文详细介绍了Linux下的文本搜索工具grep及其扩展版本egrep的使用方法。包括grep的基础用法及选项,如--color、-v、-o等,并解释了如何通过-E选项启用扩展正则表达式的匹配方式。此外,还提供了基础正则表达式与扩展正则表达式的具体元字符、次数匹配、位置锚定等规则说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

grep和egrep

grep(全称:Globally search aRegular Expression and Print)是Linux中的一种文本搜索工具,用于显示用户指定的文本模式在目标文本中匹配的行。egrep是当其使用扩展正则表达式来匹配字符时的另一种表示模式,相当于grep –E。下面,分别讲grep的基本使用方法以及相关的基础正则表达式与扩展正则表达式。

一、grep的基本用法

格式:grep [option]… ‘PATTEN’ [file](做变量换算时需要使用双引号)

默认只支持基本正则表达式,要匹配基本正则表达式之外的文本模式,需使用grep -E

常用选项:

--color 指定颜色

-v 反向选择

-o 仅匹配被模式匹配到的字符串

-i 不区分大小写

-E 匹配扩展正则表达式文本模式

-A #:还显示模式匹配到的下面#行(#表示数字)

-B #:还显示模式匹配到的上面#行

-C #:还显示模式匹配到的前后#行

二、附录:

一)基础正则表达式

基础正则表达式之元字符:

.:任意字符

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

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

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

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

所有的字母:[[:alpha]]

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

空格:[[:space:]]

标点符号:[[:putct:]]

指定范围外:[^]

基础正则表达式之次数匹配:

*:任意次

.*:匹配任意字符任意次

\?:匹配前面的字符0次或者1次

\{m\}:匹配m次

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

\{m,\}:匹配至少m次

\{0,n\}:匹配至多n次

基础正则表达式之位置锚定:指定字符出现的位置

^Char:锚定行首

Char$:锚定行尾

^$:锚定空白行

基础正则表达式之单词的位置锚定

\<char,\b:锚定词首

Char>\,b\:锚定词尾

基础正则表达式之分组和引用:

\(char\).*\1:后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式匹配到的内容。意思是,前面出现一次,在\1这也要出现一次。当数字1变成2时表示第二个左括号以及与之对应的右括号中的模式匹配到内容。

示例如下:

二)扩展正则表达式:

扩展正则表达式之字符匹配:

.:任意单个字符

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

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

扩展正则表达式之次数匹配:

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

?:匹配前面的字符0或者1次

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

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

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

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

扩展正则表达式之分组:

(char)\1:分组和后向引用

|:或者

示例一:

示例二:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值