正则表达式总结

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

  

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

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

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

 

二、系统特殊符号

1、美元符号:$

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

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

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

  4)表示一行的结尾

2、叹号符号:!

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

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

3、竖线符号:|

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

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

4、井号:#

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

  2)超级用户命令提示符

5、引号符号

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

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

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

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

6、定向符号

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

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

7、路径信息符号

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

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

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

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

8、逻辑符号

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

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

 

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

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

  1)尖角符号:^ --表示匹配以什么字符开头的一行信息 ,^bak 表示匹配以bak开头的一行信息。

  2)美元符号:$ --表示匹配以什么字符结尾的一行信息, bak$ 表示匹配以bak结尾的一行信息。

  3)尖角+美元符号:^$ --表示过滤空行信息。

  4)点号符号:. --表示匹配任意一个且只有一个字符。

  5)星号符号:* --表示匹配前一个字符出现连续出现1次或0次以上

  6)点星符号:.* --表示匹配文件中所有信息(包括空行) 。
    ^.*xxx :表示从开头到什么字符为止的内容(贪婪匹配)
    ^xxx.*xxx$ :表示以什么开头到什么字符结尾的全部内容信息。

  7)转义符号:\     01. 将有特殊意义符号,转义成普通信息进行识别 \.$ --表示匹配以.结尾的内容信息
          02. 将没有意义的信息转义为有特殊意义的信息 \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、注意事项

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

    grep   ---  egrep 或 grep -E 

    sed   --- sed -r

 

企业面试题: 批量创建用户 lyb01..lyb10,并给每个用户设置密码信息,默认初始化密码(123456)

具体命令:

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

posted @ 2021-02-24 21:50  小丸子攻城狮  阅读(1000)  评论(0)    收藏  举报