LInux常用的正则表达式符号

正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,可以让用户轻易完成查找、删除、替换某特定字符串的处理过程。

一、正则表达式与通配符的区别:

1、正则符号匹配的是文件内容信息。

2、通配符匹配的是文件名称信息。

二、系统特殊符号

1、美元符号:$

1)用于取出变量中的内容

# 获取字符编码
[root@localhost ~]# echo $LANG
zh_CN.UTF-8
# 查看环境变量
[root@localhost ~]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/data/jdk1.8.0_421/bin

2)用于取出指定列的信息,在awk中常用

[root@localhost ~]# awk -F ':' '{ print $4 }' /etc/passwd

3)表示用户命令提示符。超级用户为#,普通用户为$.

[root@localhost ~]# su - liyb
[liyb@localhost ~]$ 

4)表示一行的结尾

2、叹号符号:!

1)用于取反或者排除的意思。

2)用于强制操作处理:vim中强制保存退出,wq!,q!

3、竖线符号:|

1)表示管道符号,管道前面执行命令的结果,交给管道后面的命令执行。

[root@localhost ~]# ps -ef |grep tomcat

2)经常配合xargs命令使用,将查找出的结果进行分组显示。

find  /   -name  "*.log"  | xargs rm -rf

4、井号:#

1)表示文件内容注释符号

2)超级用户命令提示符

5、引号符号

1)$():表示命令执行结果留下,用于其他命令调用。

2)双引号:“” --表示输入内容,就是输出内容,但是部分信息会被解析。

3)单引号:'' --表示输入即输出

4)反引号:`` --表示执行命令的结果留下,用于其他命令执行或调用

# 查看某个命令属于哪个软件包
[root@localhost ~]# rpm -qf `which nslookup`
bind-utils-9.16.23-21.oe2203.x86_64

6、定向符号

1)小于符号:单个< 标准输入重定向符号 两个<< 标准输入追加重定向符号

2)大于符号:单个>/2> 标准输出重定向符号/错误输出重定向符号 >>/2>> 标准输出追加重定向/错误输出追加重定向符号

# 将挂载信息追加到fstab文件,使其开机自动挂载
[root@localhost ~]# cat >> /etc/fstab <<EOF
/dev/vdb    /data    xfs  defaults  0 0
EOF


7、路径信息符号

1)单点符号:. --表示当前目录

2)双点符号:.. --表示上级目录

[root@localhost data]# cd ..
[root@localhost /]# 

3)波浪符号:~ --表示用户家目录 超级用户家目录:/root 普通用户家目录:/home/用户名称

4)减号符号:- --表示回到上次的目录,cd -

8、逻辑符号

1)并且符号:&& --表示前面的命令执行成功,再执行后面的命令

[root@localhost ~]# systemctl start nginx && systemctl enable nginx

2)或者符号:|| --表示前面的名称执行失败,再执行后面的命令。若前面的命令执行成功,则不执行后面的命令。

三、基础正则符号和扩展正则符号。

1、基础正则符号:^ $ . * [] \

1)尖角符号:^            

        表示匹配以什么字符开头的一行信息 ,^bak 表示匹配以bak开头的一行信息。

2)美元符号:$       

        表示匹配以什么字符结尾的一行信息, 表示匹配以bak结尾的一行信息。

3)尖角+美元符号:^$        

        表示过滤空行信息。

4)点号符号:.        

        表示匹配任意一个且只有一个字符。

5)星号符号:*         

        表示匹配前一个字符出现连续出现1次或0次以上

6)点星符号:.*         

        表示匹配文件中所有信息(包括空行) 。

^.*xxx :表示从开头到什么字符为止的内容(贪婪匹配)
^xxx.*xxx$ :表示以什么开头到什么字符结尾的全部内容信息。

7)转义符号:\

  1. 将有特殊意义符号,转义成普通信息进行识别 .$ --表示匹配以.结尾的内容信息

  2. 将没有意义的信息转义为有特殊意义的信息 \n --换行 \t --制表符,相当于tab

8)中括号:[]         

        表示匹配括号内的多个字符信息。

 [abc] 匹配包含a或b或c信息的内容

9)排除符号:[^]         

        表示排除括号中的信息。

[^abc] 匹配排除包含a或b或c信息的其他内容

2、扩展正则符号:+ | () {} ?

1)加号符号:+         

        表示前一个字符连续出现了1次或多次以上。一般加号与中括号使用,可以匹配多个不同的连续字符

2)问号符号:?

        表示前一个字符出现0次或1次

3)竖线符号:|

        表示匹配多个满足条件的信息(或者) a|b|c 匹配出含有a或b或c内容的信息

4)小括号符号:()

        (1)表示匹配一个整体             

        (2)表示后向引用前项 (.*) \1 经常在sed中使用

5)大括号符号:

        表示定义前面字符出现的次数

    {x} 表示前一个字符正好连续出现x次。
    {x,y} 表示前一个字符连续至少出现x次,最多出现y次。
    {x,} 表示前一个字符连续出现x次,最多无限次
    {,y} 表示前一个字符至少连续出现0次,最多y次。

3、注意事项

默认grep ,sed不能直接识别扩展正则符号,需要提升级别才可识别

grep   ---  egrep 或 grep -E 

sed   --- sed -r

示例:批量创建用户 lyb01..lyb10,并给每个用户设置密码信息,默认初始化密码(123456) 具体命令:

seq -w 10|sed -r 's#(.*)#useradd liyb\1;echo 123456|passwd --stdin lyb\1#g'

如果你觉得这个作品对你有帮助,请不吝点赞、收藏,分享给身边更多的朋友。如果你有任何疑问或建议,欢迎在评论区留言交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维李哥不背锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值