Linux Shell Scripting Cookbook 读书笔记 4

本文详细介绍了正则表达式的各种元素及其用法,包括行起始、行尾、任意字符、字符集等,并通过实例说明了如何使用这些元素进行精确匹配。此外,还深入探讨了grep命令的使用技巧,如递归搜索、排除目录、打印匹配行的前后行等,为用户提供了一套完整的文本搜索解决方案。

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

正则, grep

1. 正则表达式

 正则表达式 描述 示例
^ 行起始标记 ^hell匹配以hell开头的行
$ 行尾标记  test$匹配以test结尾的行
.匹配任意一个字符 hell.匹配hell1,hell2,但是不能匹配hell12,只能匹配单个字符
[] 匹配包含在[字符]之中的任意一个字符 test[123]匹配test1,test2,test3
[^]匹配除[^字符]之外的任意一个字符 test[^12]不匹配test1,test2,匹配test3
[-]匹配指定范围内的任意一个字符 [0-10],匹配0~10中的任意一个数字
? 匹配之前的项1次或者0次  hel?o匹配helo或者heo
+ 匹配之前的项1次或者多次  hel+o匹配helo或者helllllo,但是不能匹配heo
*匹配之前的项0次或多次  hel*o匹配helo或者helllllo,也能匹配heo
()创建一个用于匹配的子串 ma(tri)?可以匹配ma或者matri
{n}匹配之前的项n次 [0-9]{3}匹配任意一个三位数
{n,}匹配之前的项至少n次 [0-9]{3,}匹配任意一个三位或者更多位的数
{n,m}匹配之前的项n到m次 [0-9]{3,4}匹配一个三位到四位的数
|匹配 | 两边的任意一项 June (1st | 2nd)匹配June 1st或者June 2nd
\转义符可将上面的符号转义 a\*b匹配a*b,不能匹配ab

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. grep

递归搜索

grep "text" . -R -n

-R 表示在当前目录递归搜索,-n打印出匹配的文件的行号

 

如果需要排除目录,可以使用--exclude-dir

打印出匹配行的前后行

多个匹配以--分隔

 

转载于:https://www.cnblogs.com/ryansunyu/p/9236212.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值