Linux学习1 ----正则表达式&grep
正则表达式
- 通配符是大部分普通命令都支持的,用于查找文件或目录
- 正则表达式是通过三剑客命令在文件(数据流)中过滤内容
Linux 三剑客
- grep:文本过滤工具
- sed:stream editor,流编辑器;文本编辑工具
- awk:Linux的文本报告生成器(格式化文本),Linux上是gawk
正则表达式分类
-
基本正则表达式
对应字符有^ $ . [] *
-
扩展正则表达式
基本正则加上 () {} ? + |
基本正则表达式
- 匹配字符
- 匹配次数
- 位置锚定
符号 | 作用 |
---|---|
^ | 尖角号,用于模式的最左边,如 "^oldboy",匹配以oldboy单词开头的行 |
$ | 美元符,用于模式的最右边,如"oldboy$",表示以oldboy单词结尾的行 |
^$ | 组合符,表示空行 |
. | 匹配任意一个且只有一个字符,不能匹配空行 |
\ | 转义字符 |
* | 匹配前一个字符(连续出现)0次或1次以上,重复0次代表空,即匹配所有内容 |
.* | 组合符,匹配所有内容 |
^.* | 组合符,匹配任意多个字符开头的内容 |
.*$ | 组合符,匹配以任意多个字符结尾的内容 |
[abc] | 匹配[]集合内的任意一个字符,a或b或c,可以写成[a-c] |
[^abc] | 匹配除了后面的任意字符,表示对[abc]的取反 |
扩展正则表达式
字符 | 作用 |
---|---|
+ | 匹配前一个字符1次或多次 |
[😕]+ | 匹配括号内的字符(":" 或者"/")1次或多次 |
? | 匹配前一个字符0次或1次 |
\ | 表示或者,同时过滤多个字符串 |
() | 分组过滤,被括起来的内容表示一个整体 |
a | 匹配一个字符最少n次,最多m次 |
a | 匹配一个字符最少n次 |
a | 匹配一个字符正好n次 |
a | 匹配一个字符最多m次 |
grep
-
作用:文本搜索工具,根据用户指定的模式(过滤条件)对目标文本逐行匹配检查,打印匹配到的行
-
模式:由正则表达式的 元字符 及 文本字符 所编写出的 过滤条件
语法:
grep [option] [pattern] file
命令 参数 匹配模式 文件数据
-i:ignorecase 忽略字符大小写
-o: 仅显示匹配到的字符本身
-v: --invert-match:显示不能被模式匹配到的行
-E:支持使用扩展的正则表达式元字符
-q:--quiet 静默模式,即不输出任何信息
- grep命令里的 匹配模式 就是你想要找的东西,可以是普通的文字符号,也可以是正则表达式
-v | 排除匹配结果 |
---|---|
-n | 显示匹配行与行号 |
-i | 不区分大小写 |
-c | 只统计匹配的行数 |
-E | 使用egrep命令,用于扩展正则表达式 |
--color=auto | 为grep过滤结果添加颜色 |
-w | 只匹配过滤的单词 |
-o | 只输出匹配的内容 |
- 案例
grep -i "root" pwd.txt
grep "root" pwd.txt -n -i #找出pwd.txt文本中含 root 字符串的行,且显示行号,不区分大小写
grep -i "^i" pwd.txt #找出以i开头的行
grep -n "/bin/bash$" pwd.txt #找出所有以 /bin/bash 结尾的行,且显示行号
播种和收获通常不在一个季节,而中间的过程叫做坚持~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构