通配符
在shell 当中用某些符号来表示一类字符,
?表示一个任意字符
* 表示任意多个的任意字符
[] 表示中括号中的任意一个字符
!或者 ^ 表示非 [!0-9]和[^0-9]都表示非数字
\ 释意符,后边跟一个通配符,就会将此通配符当成正常符号,而不是通配符
[[:upper:]] 大写字母
[[:lower:]] 小写字母
[[:alpha:]] 字母(不区分大小写)
[[:alnum:]] 字母和数字
[[:digit:]] 纯数字
通配符中 . 没有特殊含义,就是个.
正则表达式
grep ‘关键字’ file
以下两种是以行为单位的
^ 表示以后边那个字符为行头的
$ 表示以前边那个字符为行尾的
以下两种这种是以连续性单词为单位的
'\<tom' 表示以tom这个单词为开头的单词
'tom\>'表示以tom这个单词为结尾的单词
'\<tom\>' 表示tom 这个单词
关键字可以用正则表达式来表示
‘^root’表示以r为行头的内容
‘sh$’表示以h为行尾的内容
. 相当于通配符中的? 表示任意一个字符
?表示前边的字符要不没有,要不 出现1一次,就是可有可无的意思
+ 表示前边的字符至少出现一次
* 表示前边的字符出现任意次
.* 表示任意一个字符都可以任意出现或不出现,也不限定出现次数,即表示通配符中的*
grep 并不支持所有的元字符
egrep = grep -E 表示支持扩展的元字符。能支持更多的字符
grep -p 对poor中的元字符支持,也能支持更多的元字符
{n} 表示前边的字符出现n次以上的筛选出来
贪婪匹配和懒惰匹配
tom+ 这是一种贪婪匹配
比如 tommmmmm 这个单词被删选出来的时候是吧m匹配到底,有多少个m就匹配多少次。然后再显示出来
tom+? 这是懒惰匹配
当筛选 tommmmmm 的时候,筛选到第一个m的时候,一看合适,后边就不继续匹配了,直接把这个单词显示出来。
作业: 如何使用正则表达式表示一个ip地址,
不能包含子网掩码广播地址环回地址等
在shell 当中用某些符号来表示一类字符,
?表示一个任意字符
* 表示任意多个的任意字符
[] 表示中括号中的任意一个字符
!或者 ^ 表示非 [!0-9]和[^0-9]都表示非数字
\ 释意符,后边跟一个通配符,就会将此通配符当成正常符号,而不是通配符
[[:upper:]] 大写字母
[[:lower:]] 小写字母
[[:alpha:]] 字母(不区分大小写)
[[:alnum:]] 字母和数字
[[:digit:]] 纯数字
通配符中 . 没有特殊含义,就是个.
正则表达式
grep ‘关键字’ file
以下两种是以行为单位的
^ 表示以后边那个字符为行头的
$ 表示以前边那个字符为行尾的
以下两种这种是以连续性单词为单位的
'\<tom' 表示以tom这个单词为开头的单词
'tom\>'表示以tom这个单词为结尾的单词
'\<tom\>' 表示tom 这个单词
关键字可以用正则表达式来表示
‘^root’表示以r为行头的内容
‘sh$’表示以h为行尾的内容
. 相当于通配符中的? 表示任意一个字符
?表示前边的字符要不没有,要不 出现1一次,就是可有可无的意思
+ 表示前边的字符至少出现一次
* 表示前边的字符出现任意次
.* 表示任意一个字符都可以任意出现或不出现,也不限定出现次数,即表示通配符中的*
grep 并不支持所有的元字符
egrep = grep -E 表示支持扩展的元字符。能支持更多的字符
grep -p 对poor中的元字符支持,也能支持更多的元字符
{n} 表示前边的字符出现n次以上的筛选出来
贪婪匹配和懒惰匹配
tom+ 这是一种贪婪匹配
比如 tommmmmm 这个单词被删选出来的时候是吧m匹配到底,有多少个m就匹配多少次。然后再显示出来
tom+? 这是懒惰匹配
当筛选 tommmmmm 的时候,筛选到第一个m的时候,一看合适,后边就不继续匹配了,直接把这个单词显示出来。
作业: 如何使用正则表达式表示一个ip地址,
不能包含子网掩码广播地址环回地址等