shell编程:grep - 文本搜索利器(3)

目录

基本正则表达式(BRE)

[行首匹配 - 查找以指定字符串开头的行](#行首匹配 - 查找以指定字符串开头的行)

[行尾匹配 - 查找以指定字符串结尾的行](#行尾匹配 - 查找以指定字符串结尾的行)

[任意字符 - 查找以"T"开头,第二个字符任意,第三个字符是"h"的模式](#任意字符 - 查找以"T"开头,第二个字符任意,第三个字符是"h"的模式)

[重复字符 - 查找包含 0 个或多个指定字符的行](#重复字符 - 查找包含 0 个或多个指定字符的行)

[字符集 - 查找包含 a、b 或 c 的行](#字符集 - 查找包含 a、b 或 c 的行)

[字符范围 - 查找包含小写字母的行](#字符范围 - 查找包含小写字母的行)

[排除字符集 - 查找不包含 a、b、c 的行](#排除字符集 - 查找不包含 a、b、c 的行)


基本正则表达式(BRE)

行首匹配 - 查找以指定字符串开头的行

grep "^This" file.txt
表示在file.txt文件中匹配以 This 开头行

详细解释
• ^:行首锚点 (grep默认是处理行的)
• 匹配以"This"开头的行
• 不匹配行中间的"This"

行尾匹配 - 查找以指定字符串结尾的行

grep "file\." file.txt 表示在file.txt文件中匹配以file.结尾的行 ![](https://i-blog.csdnimg.cn/direct/6983ff409e7c43f0a03ca51032eab60c.png) **详细解释** : • \\.:转义点号,匹配字面意义的"."(否则.匹配任意字符) ![](https://i-blog.csdnimg.cn/direct/bce856ea7c34415a89b1ffa2640833b4.png) 在这个示例中如果给 . 不加 / 转义字符,则 . 表示一个任意字符,则这条命令表示匹配以file再跟一个任意字符结尾的行 • :行尾锚点
• 匹配以"file."结尾的行

任意字符 - 查找以"T"开头,第二个字符任意,第三个字符是"h"的模式

grep "T.h" file.txt
在file.txt文件中匹配包含以T开始,以h结尾的长度为3字符的行

详细解释
• .:匹配任意单个字符(换行符除外)
• 匹配"Thh"、"Tah"、"T h"等
• 三个字符的模式:T + 任意字符 + h

重复字符 - 查找包含 0 个或多个指定字符的行

grep "a*" file.txt
在file.txt文件中查找包含0个或多个a字符的行

详细解释
• *:匹配前面的字符 0 次或多次
• "a*"匹配空字符串或连续的 a
• 几乎所有行都会匹配,因为*可以匹配 0 个 a

字符集 - 查找包含 a、b 或 c 的行

grep "[abc]" file.txt
详细解释
• [abc]:字符集合,匹配其中任意一个字符
• 匹配包含 a 或 b 或 c 的行
• 方括号内的字符是"或"关系

字符范围 - 查找包含小写字母的行

grep "[a-z]" file.txt
表示再file.txt文件中查找包含小写字母的行

如果在 grep 后再加个 -i 选项,就表示不区分大小写,查找所有字母所在的行
详细解释
• [a-z]:字符范围,匹配 a 到 z 之间的任意小写字母
• 等价于[abcdefghijklmnopqrstuvwxyz]
• 匹配包含任何小写字母的行

排除字符集 - 查找不包含 a、b、c 的行

grep "[^abc]" file.txt
表示在 file.txt 文件中查找不包含a或b或c的行

详细解释
• [^abc]:排除字符集,匹配不包含 a、b、c 的任意字符
• 方括号内以^开头表示否定
• 匹配包含除 a、b、c 外其他字符的行

相关推荐
小武~几秒前
嵌入式网络编程深度优化 --网络协议栈配置实战指南
linux·网络·网络协议
二进制星轨6 分钟前
在 Ubuntu 上快速配置 Node.js 环境(附问题说明)
linux·ubuntu·node.js
kblj555522 分钟前
学习Linux——网络——网卡
linux·网络·学习
Physicist in Geophy.36 分钟前
新版ubuntu中sac安装问题(缺少libncurses5)
linux·运维·ubuntu
菲兹园长44 分钟前
微服务组件(E、L、N、O、G)
linux·服务器·gateway
xier_ran1 小时前
Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
linux·windows·python·microsoft
richxu202510012 小时前
Linux本地部署deepseek大模型之 6. Windows本地连接远程云服务器中的MySQL常见错误的解决办法
linux·服务器·windows
Ryan ZX2 小时前
Ubuntu 升级OpenSSH10.2p1与OpenSSL3.5.4版本避坑实践
linux·运维·服务器·ubuntu
尘缘浮梦3 小时前
RobotFramework框架环境搭建
linux·开发语言·python
江公望3 小时前
linux kernel struct clk_init_data结构浅解
linux