linux——shell-正则表达式

  • find命令和grep命令的区别

       find搜索的是文件名,默认的使用的是通配符(通配符是完全匹配);find命令可以通过指定-regex参数将匹配模式转化为正则表达式,但是不建议如此使用

       grep 搜索的是文件的内容,默认使用的是正则表达式(正则表达式是模糊匹配)

  • 通配符:通配符用来匹配文件名,完全匹配
通配符 作用
? 匹配一个任意字符
* 匹配 0 个或任意多个任意字符,也就是可以匹配任何内容
[] 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c
[-] 匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符

   

  

  • 正则表达式 :用来匹配字符创 ,包含匹配;

   标准正则:

正 则 符

作             用

*

匹配前一个字符重复 0 次,或任意多次

[]

匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c

[-]

匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母

[^]

逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符

^

匹配行首

$

匹配行尾

\         

转义符。用于取消讲特殊符号的含义取消。 表示其前面的字符恰好出现 n 次。例如:[0-9]\{4\} 匹配 4 位数字,
\{n\} 前面的字符出现n次
\{n,\} 前面的字符至少出现n次
\{n,m\} 前面的字符出现n-m次
  • 扩展正则 linux中的grep默认不支持如下正则符号,如果要使用如下符号需要使用egrep命令或 grep -E参数。

扩展元字符

作            用

 

+

前一个字符匹配 1 次或任意多次。

如“go+gle”会匹配“gogle”、“google”或“gooogle”,当然如 果“o”有更多个,也能匹配。

前一个字符匹配 0 次或 1 次。

 

|

匹配两个或多个分支选择。

如“was|his”会匹配既包含“was”的行,也匹配包含“his”的行。

 

 

 

()

匹配其整体为一个字符,即模式单元。可以理解为由多个单个字符组

成的大字符。 如“(dog)+”会匹配“dog”、“dogdog”、“dogdogdog”等,因为 被()包含的字符会当成一个整体。但“hello (world|earth)” 会匹配“hello world”及“hello earth”。

猜你喜欢

转载自blog.csdn.net/misxu890312/article/details/90741223