Shell学习之结合正则表达式与通配符的使用(五)
Shell学习之结合正则表达式与通配符的使用
目录
通配符
正则表达式
通配符
正则表达式与通配符
1 2 3 | 正则表达式用来在文件中<strong>匹配符合条件的字符串< / strong>,正则是<strong>包含匹配< / strong>。grep、awk、sed等命令可以支持正则表达式。 通配符用来<strong>匹配符合条件的文件名< / strong>,通配符是<strong>完全匹配< / strong>。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来就行匹配。 |
通配符
1 2 3 4 5 6 7 8 | 符号 作用 * 匹配任何字符串/文本,包括空字符串; * 代表任意字符( 0 个或多个) ls file * ? 匹配任何一个字符(不在括号内时)?代表人意 1 个字符 ls file 0 [abcd] 匹配abcd中任何一个字符 [a - z] 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0 {..} 表示生成序列。以逗号分隔,且不能有空格 补充 [!abcd] 或[^abcd]表示非,表示不匹配括号里面的任何一个字符 |
通配符的使用
? 匹配任何一个字符
1 2 3 | ls / bin / ??? ls / bin / ?? |
[abcd] 表示匹配中括号内任意一个字符就成立
1 | ls te[asb]t |
{}生成序列
1 | touch {a..c} |
匹配文件
1 | ls [a - c] |
利用{}备份数据库
1 2 3 4 5 | 表示将ae复制一份叫做affff cp a{e,fff} 表示将ae做备份叫做ae.bak cp a{e,e.bak} |
!^表示非,取反
1 2 3 | 查找文件名里没有a和e的文件名<br>ls [!ae] ls [^ae] |
正则表达式
正则表达式
正则表达式的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <strong> "*" 前一个字符匹配 0 次,或者任意多次< / strong> 匹配至少包含有一个a的行 grep "aa*" test.txt 匹配至少包含有两个a的行 grep "aaa*" <strong> "." 匹配除了换行符以外任意一个字符< / strong> 匹配所有内容 grep ".*" test.txt 匹配在s与d之间一定有两个字符的单词 grep "s..d" test.txt 匹配在s与d之间有任意字符 grep "s.*d" test.txt <strong> "^" 匹配行首, "$" 匹配行尾< / strong> 匹配空白行 grep "^$" test.txt 匹配以大写字母M开头的行 grep "^M" test.txt 匹配以小写字母m结尾的行 grep "m$" test.txt <strong>"[]'匹配中括号中指定的任意一个字符,只匹配一个字符< / strong> 匹配s和i字母中,要不是a、要不是b grep "s[ao]id" test.txt 匹配任意一个数字 grep "[0-9]" test.txt 匹配用小写字母开头的行 grep "^[a-z]" test.txt <strong> "[^]" 匹配除中括号的字符以外的任意一个字符< / strong> 匹配不用小写字母开头的行 grep "[^a-z]" test.txt 匹配不用字母开头的行 grep "^[^a-zA-Z]" test.txt <strong> "\" 转义符< / strong> 匹配以点结尾的行 grep "\.$" test.txt <strong> "\{n\}" 表示其前面的字符恰好出现n次< / strong> 匹配a字母连续出现三次的字符串 grep "a\{3\}" test.txt 匹配包含连续的三个数字的字符串 grep "[0-9]\{3\}" test.txt <strong> "\{n,\}" 表示其前面的字符出现不小于n次< / strong> 匹配最少用连续三个数字开头的行 grep "^[0-9]\{3,\}[a-z]" test.txt <strong>"\{n,m\}'匹配其前面的字符至少出现n次,最多出现m次< / strong> 匹配在字母s和字母i之间有最少一个a,最多三个a grep "sa\{1,3\}i" test.txt |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?