标签:正则表达式
正则表达式:
正则表达式:由元字符和正常字符组合而成
文本处理工具:grep,egrep,sed,awk,vim,nginx
grep:全局搜索正则表达式,搜索结果那一行显示出来
文本搜索工具:根据用户条件,用元字符和正常字符对目标文件进行逐行搜索,搜索结果显示出来
grep [options], PATTERN [FILE...]
--color[=when],--colour[=when] 对搜索出来的结果进行颜色显示
auto
always
never
-o:只显示被模式匹配到内容
-i:被匹配到内容不区分大小写
-v:显示不能被匹配到的行
-E:扩展的正则表达式
-A#:
如果需要做变量替换的话需要加“”双引号,否则变量将无法识别
如:user=”root”
grep–color=auto “$user” /etc/passwd
正则表达式:(1):由元字符和正常字符组合而成模式,
(2)元字符不表示字符本身意义,主要用于表达控制或通配等功能
基本正则表达式:grep
扩展正则表达式:grep –E,egrep
fgrep:fast,不支持使用正则表达式
基本正则表达式元字符:
. :匹配任意单个字符
[ ] : 匹配指定范围内的任意当字符
[^]:匹配指定范围外的单个字符
注:[ ]这个是字符是固定格式
在使用所有字符或空格字符等一些字符的时候要加上
如[[:digit:]][[:space:]]这类表达方式
[0-9],[[digit]]表示所有数字
[A-Z],[[:upper:]]表示所有大写字母
[a-z],[[:lower:]]表示所有小写字母
[[:space:]] 所有空格字符
[[:alnum:]] 所有字母
[0-9a-zA-Z],[[:alnum:]]所有的数字和字母
次数匹配:在匹配字符后加一个控制符,来表达前面字符想要匹配到的次数
* :任意长度,可以是0次,一次或多次
注:*只对匹配 它前面字符有效
.* :任意长度的任意字符
工作于贪婪模式
\?:0次或1次,表示其左侧字符可以可无
\+:1次或多次:其表示左侧字符至少出现1次
\{m\}: m次:表示其左侧字符精确出现m次:
\{m,n\}:至少m次,至多n次(m<n)
\{0,n\}:至少n次
\{m,\}:至少m次
位置锚定:
^:锚定行首
$:锚定行尾
^$:匹配空白行:
单词锚定:由非特殊字符组成的连续的字符串
\<:锚定词首,也可用\b
\>:锚定词尾,也可用\b
\< pattern \>:匹配pattern能匹配到的整个单词
分组:\(\)
ab*c
在分组中将ab看成一个单词,在*左侧表示可有可无
“\(a.b\).*\1”
How are you
How dou you do
“\(y.u\).*\1”
\1:引用:模式中自左而右,由第一个左括号以及与之对应的右括号中模式所匹配到内容
\1:引用:模式中自左而右,由第:二个左括号以及与之对应的右括号中模式所匹配到内容
注意:分组中模式,在某次匹配中被grep记忆(保存在变量\1,\2...),也可以被引用
匹配到正则表达式元字符自己的意义要使用转义符/
例:
扩展的正则表达式:
. :匹配任意单个字符
[ ] : 匹配指定范围内的任意当字符
[^]:匹配指定范围外的单个字符
注:[ ]这个是字符是固定格式
在使用所有字符或空格字符等一些字符的时候要加上
如[[:digit:]][[:space:]]这类表达方式
[0-9],[[digit]]表示所有数字
[A-Z],[[:upper:]]表示所有大写字母
[a-z],[[:lower:]]表示所有小写字母
[[:space:]] 所有空格字符
[[:alnum:]] 所有字母
[0-9a-zA-Z],[[:alnum:]]所有的数字和字母
扩展的正则表达式次数匹配时,大多数情况下无须使用转义符\:
*:任意次
?:匹配其前的字符0或1次
+:至少一次
{m}:精确匹配到m次
{m,n}:至少m次,至多次
{m,}:至少m次
{0,n}:至多n次
位置锚定:
^:锚定行首
$:锚定行尾
^$:匹配空白行:
单词锚定:由非特殊字符组成的连续的字符串
\<:锚定词首,也可用\b
\>:锚定词尾,也可用\b
\< pattern \>:匹配pattern能匹配到的整个单词
分组:
()
或者:
a|b:a或者b (或者是两侧所有内容)
命令:
grep –E pattern FILE...
egrep PATTERN FILE...
文件查找工具:locate,find
locate: 根据此前updatedb命令生成数据库来完成文件查找
查找方式:查找的是文件名,并非是文件查找所需要的路径
非实时查找,模糊查找:查询结果不精确
必要时,可手动执行updatebd 命令 I/O占用率奇高
find命令:通过遍历指定的目标目录,实时查找符号指定属性的文件
精确匹配:速度略慢
find [options] [查找路径] [查找条件][处理动作]
查找:
-name “文件名”:文件名支持使用globbing
如:find /etc –name “paawd”
-iname “根据文件名查找”
-user username:根据属主查找
-group username:根据属组查找
-uid UID:根据指定UID查找
-gid GID:根据指定的GID查找
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
组合查找条件:
与:-a,查找条件1 –a 查找条件2 –a.....
所有条件必须同时满足
或:-o,查找条件1 –o 查找条件2 –o....
满足其中一个条件即可
非:-not,!
-not 查找条件
查找条件2
-type TYPE:根据文件类型查找
f:普通文件
d:目录文件
l:符号文件
b:设备文件
c:字符设备文件
p:命令名管道文件
s:套接字文件
-size:[+|-]#unit
Unit(文件大小的单位)
带上+号就表示大于你要查找文件
带上- 号就表示小于你要查找文件
常用单位有:k,M,G
根据时间戳查找:
以“天” 为单位
-atime [+|-]#
-mtime[+|-]# 最近修改过的文件
-ctime[+|-]# 最近改变的文件
以“分钟” 为单位
-amin [+|-]#
-mmin
-cmin
根据权限查找
-perm [+|-]mode(权限)
Mode:与mode做精确匹配
+mode:任何一类用户的权限只要能包含对其指定的任何一位权限即可
-mode:每一类用户的权限都包含对其指定的所有权限
标签:正则表达式
原文地址:http://10043080.blog.51cto.com/10033080/1629166