Linux通配符和正则表达式

1、shell常见通配符;
Linux通配符和正则表达式
2、 shell Meta字符(元字符)
shell 除了有通配符之外,还有一系列自己的其他特殊字符。
Linux通配符和正则表达式
3 、转义字符
Linux通配符和正则表达式
Linux通配符和正则表达式
4、正则表达式
正则表达式是用来匹配字符串的,针对文件内容的文本过滤工具里,大都用到正则表达式,如vi,grep,awk,sed等。

另外,这篇文章只针对Linux下的文本过滤工具的正则表达式进行讨论,其他的一些编程语言,如C++(c regex,c++ regex,boost regex),java,python等都有自己的正则表达式库。

简单点来说,正则表达式是对一组正在处理的文本的描述。

例1:查找文件test中出现单词hi,并且若干字符后出现单词Jerry的行

$ grep -E"<hi>.+<Jerry>" test
ni hao hi nihao Jerrydsfds

例2:查找文件test中出现以hi开头的单词,并且若干字符后出现以Jerry结尾的单词的行

grep -E "<hi.+Jerry>"test
ni hao hi nihao Jerrydsfds
wo buhao hiwuyanpingjfkjk Jerry
wo henhao hiwuyanJerry

在正则表达式的使用过程中,一些字符是以特定方式处理的。最常使用的特殊字符如下:
Linux通配符和正则表达式
如果想将上述字符用作普通字符,就需要在它们前面加上\字符。例如,如果想使用$字符,

你需要将它写为$在方括号中还可以使用一些有用的特殊匹配模式,如下:

Linux通配符和正则表达式
另外,如果指定了用于扩展的-E选项,那些用于控制匹配完成的其他字符可能会遵循正则表达式的规则,

对于grep命令,我们还需要在这些字符前面加上,下表是扩展部分一览:

Linux通配符和正则表达式