——from 《鸟哥的Linux私房菜》
从网上看到的总结,觉得很好:
1、通配符是系统level级的,多用在文件名上,比如find、ls、cp等。
2、正则表达式则是针对文件内容的,需要相关工具的支持,例如grep、egrep、vi、awk等。
通配符:
| 通配符 | 内容 |
|---|---|
| * | 代表0个或多个字符 |
| ? | 代表一个任意字符 |
| # | 注释 |
| \ | 转义字符 |
| | | 分隔两个管道命令的界定 |
| ; | 分隔多条命令的界定 |
| ~ | 家目录 |
| $ | 变量之前需要加的变量取代值 |
| & | 命令后跟该符号,表示命令后台执行 |
| ! | 逻辑非 |
| / | 目录分隔符 |
| > , >> | 重定向,表示替换或者追加 |
| ' | 单引号,不支持变量置换 |
| " | 双引号,支持变量置换 |
| ` | ``之间的命令可以先执行 |
| [] | 在中间为字符的组合 |
| () | 在中间为子shell的起始与结束 |
| {} | 在中间为命令区块的组合 |
正则表达式:
| RE字符 | 意义与范例 |
| ^word | 待搜索的字符串word在行首 |
| word$ | 待搜索的字符串word在行末 |
| . | 代表任意一个字符 |
| \ | 转义字符 |
| * | 重复0个或多个前一个RE字符 |
| \{n,m\} | 连续n到m个前一个RE字符 |
| 若为\{n\},则表示连续n个前一个RE字符 | |
| 若为\{n,\},则表示连续n个以上的前一个RE字符 | |
| [] | [list] 当中只代表一个待搜索的字符 |
| [ch1-ch2] 代表ch1至ch2区间内的所有字符 | |
| [^] 代表反向选择 | |
本文详细介绍了Linux系统中通配符与正则表达式的使用方法及区别。通配符主要用于文件名匹配,如find、ls等命令;而正则表达式则用于文本内容的搜索,适用于grep、vi等工具。文章通过具体实例帮助读者理解两者的特点及应用场景。
5780

被折叠的 条评论
为什么被折叠?



