加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式和理解

发布时间:2020-12-14 01:22:26 所属栏目:百科 来源:网络整理
导读:正则表达式: 正则表达式:由元字符和正常字符组合而成 文本处理工具: grep , egrep,sed,awk,vim,nginx grep :全局搜索正则表达式,搜索结果那一行显示出来 文本搜索工具:根据用户条件,用元字符和正常字符对目标文件进行逐行搜索,搜索结果显示出来 gre

正则表达式:

正则表达式:由元字符和正常字符组合而成

文本处理工具:grepegrep,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 ?Eegrep

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”

Howare you

Howdou you do

“(y.u).*1”

1:引用:模式中自左而右,由第一个左括号以及与之对应的右括号中模式所匹配到内容

1:引用:模式中自左而右,由第:二个左括号以及与之对应的右括号中模式所匹配到内容

注意:分组中模式,在某次匹配中被grep记忆(保存在变量12...,也可以被引用

匹配到正则表达式元字符自己的意义要使用转义符/

例:

扩展的正则表达式:

.:匹配任意单个字符

[ ] : 匹配指定范围内的任意当字符

[^]:匹配指定范围外的单个字符

注:[ ]这个是字符是固定格式

在使用所有字符或空格字符等一些字符的时候要加上

[[:digit:]][[:space:]]这类表达方式

[0-9],[[:alnum:]]所有的数字和字母

扩展的正则表达式次数匹配时,大多数情况下无须使用转义符

*:任意次

?:匹配其前的字符01

+:至少一次

{m}:精确匹配到m

{m,n}:至少m次,至多次

{m,}:至少m

{0n}:至多n

位置锚定:

^:锚定行首

$:锚定行尾

^$:匹配空白行:

单词锚定:由非特殊字符组成的连续的字符串

&;:锚定词首,也可用b

&;:锚定词尾,也可用b

&; pattern &;:匹配pattern能匹配到的整个单词

分组:

()

或者:

a|ba或者b (或者是两侧所有内容)

命令:

grep ?E pattern FILE...

egrep PATTERN FILE...

文件查找工具:locatefind

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:任何一类用户的权限只要能包含对其指定的任何一位权限即可

wKiom1UhWYyiC18YAAGiGS1SrC4191.jpg

wKiom1UhWYyxOfhNAAIRuBUq-Xg340.jpg

wKioL1UhWtCRfFm9AAKg3no4zB0183.jpg

wKiom1UhWY3TbZT4AAKTbvMwLHM986.jpg

wKioL1UhWtGDE2UhAAJ4dET4G5g666.jpg

wKiom1UhWY3h7qenAAI7Km5E1J8605.jpg

wKioL1UhWtLQU9QgAAE9_Y5adyk275.jpg

wKiom1UhWY7x6g8rAAEuDycHCNo603.jpg

wKioL1UhWtKgm8rkAAGF1HjJ3m0487.jpg

wKioL1UhWtPDMapyAAGa3-jkJ9s836.jpg

wKiom1UhWY_g6nikAAKUPHrB-dU459.jpg

-mode:每一类用户的权限都包含对其指定的所有权限

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读