Shell 基础正则表达式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40945965/article/details/81627429

正则表达式与通配符
1)正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。Grep、awk、sed等命令可以支持正则表达式。
2)通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。

这里写图片描述
“*”表示前一个字符匹配0次,或任意多次
例1:grep “a*” test.sh
注:匹配所有内容,包括空白行

例2:grep “aa*” test.sh
注:匹配至少包含有一个a的行

例3:grep “aaa*” test.sh
注:匹配最少包含两个连续a的字符串

例4:grep “aaaaa*” test.sh
注:匹配最少包含四个连续a的字符串
“.”表示匹配除了换行符外任意一个字符
例1:grep “s..d” test.sh
注:”s..d”会匹配在s和d这两个字母之间一定有两个字符的单词

例2:grep “s.*d” test.sh
注:匹配在s和d字母之间有任意字符

例3:grep “.*” test.sh
注:匹配所有内容

“^”表示匹配行首
例:grep “^M” test.sh
注:匹配以大写”M”开头的行

1 g r e p n ” test.sh
注:匹配以小写”n”结尾的行

例2:grep –n “^$” tesh.sh
注:会匹配空白行,-n显示行号

“[^]”表示匹配除中括号的字符以外的任意一个字符
例1:grep “^[^a-z]” test.sh
注:匹配不用小写字母开头的行

例2:grep ”^[^a-zA-Z]” test.sh
注:匹配不用字母开头的行

猜你喜欢

转载自blog.csdn.net/qq_40945965/article/details/81627429