正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。
通配符用来匹配符合条件的文件名,通配符是完全匹配的。ls、find、cp这些命令不支持正则表达式,所以只能使用Shell自己的通配符来进行匹配了。
| 元字节 | 作用 |
|---|---|
| * | 前一个字符匹配0次或者n次 |
| . | 匹配除了换行符外任意一个字符 |
| ^ | 匹配行首,例如:^hello会匹配以hello开头的行 |
| $ | 匹配行尾,例如:hello$会匹配以hello结尾的行 |
| [] | 匹配中括号中指定的任意一个字符,只匹配一个字符。 例如:{aoeiu}匹配任意一个元音字符, [0-9]匹配任意一位数字 [a-z][0-9]匹配小写字和一位数构成的俩位字符 |
| [^] | 匹配除了中括号的字符以外的任意一个字符,例如:[^0-9]匹配 任意一个为数字字符 |
| \ | 转义符,用于取消将特殊符号含义取消 |
| \{n\} | 表示其前面的字符出现不小于n次, 例如:[0-9]{2,} 表示匹配俩位数及其以上的数字 |
| \{n,m\} | 表示其前面的字符至少出现n次,最多m次, 例如:[a-z]{6,8}匹配6到8为的小写字母 |

命令:grep "a*" 文件名
效果图:

命令:grep "aa*" 文件名
效果图:

命令:grep "aaa*" 文件名
效果图:

命令:grep "s..d" 文件名
效果图:

命令:grep ".*" 文件名
效果图:

命令:grep "^M" 文件名
效果图:

命令:grep "\!$" 文件名
效果图:

为了方便观察 添加参数-n打印一下行号。
命令:grep "^$" 文件名
效果图:

命令:grep "s[ao]id" 文件名
效果图:

命令:grep "[0-9]" 文件名
效果图:

命令:grep "^[a-z]" 文件名
效果图:

命令:grep "^[^a-z]" 文件名
效果图:

命令:grep "^[^a-zA-Z]" 文件名
效果图:

命令:grep "\.$" 文件名
效果图:

命令:grep "a\{3\}" 文件名
效果图:

命令:grep "sa\{1,3\}i" 文件名
效果图:
