正则表达式作用

 

  1. 正则表达式是什么?正则表达式的用途?正则表达式的分类?

定义:正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说,是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定字符串

用途:正则表达式会与系统管理员来说非常重要,系统运行过程中会产生大量的信息,这些信息有些是非常重要的,有些则仅是告知的信息。身为系统管理员如果直接看这么多的信息数据,无法快速定位到的重要信息,如“用户账号登陆失败”“服务启动失败”等信息。这时可以通过正则表达式快速提取“有问题”的信息。如此一来,可以将运维工作变得更加简单、方便

分类正则表达式的字符串表达方式根据不同的严谨程度与功能分为基本正则表达式与扩展正则表达式。基础正则表达式是常用正则表达式最基础的部分。在Linux系统中常见的文件处理工具中grep与sed支持基础正则表达式,二egrep与awk支持扩展正则表达式

  1. 基础正则表达式的元字符有哪些?它们的含义是什么?

\:将下一个字符标记为特殊字符或字面值。例如,n 匹配字符 n,而 \n 匹配换行符。序列 \\ 匹配 \,而 \( 匹配 (。

^:匹配输入的开始部分

$:匹配输入的结束部分

*:零次或更多次匹配前面的字符。例如,zo* 匹配 z 或 zoo。

+:一次或更多次匹配前面的字符。例如,zo+ 匹配 zoo,但是不匹配 z。

?:零次或一次匹配前面的字符。例如,a?ve? 匹配 never 中的 ve。

.:匹配任何单个字符,但换行符除外。

3.grep、sed的基础操作

1)用'grep'来查找‘the’

       grep -n 'the' test.txt

      

2)用‘grep’来查找g开头d结尾的所有单词

       grep -n 'g[a-z]*d ' test.txt

      

3)用‘grep’来查找所有以小写字母 开头的行

       grep -n '^[a-z]' test.txt

      

4)用‘grep’来查找所有以大写字母开头的行

       grep -n '^[A-Z]' test.txt

      

5)用'grep'来查找所有数字开头的行

       grep -n '^[0-9]' test.txt

      

6)用‘grep’来查找以感叹号结尾的行

       grep -n '.*!' test.txt

      

7.)用‘grep’查找包含数字的行

       grep -n '[0-9][0-9]*' test.txt

      

8)用‘grep’查找a开头g结尾,中间重复2个g以上的字符串。

       grep -n 'ag\{2,\}g' test.txt

      

9)用'sed'输出所有行的行号

       sed -n '=' test.txt

      

10)用‘sed’输出单词‘good’的行

       sed -n '/good/=' test.txt

11)用‘sed’删除第4行

       sed 's/t/T/4' test.txt

      

12)用‘sed’删除以感叹号结尾的行

       sed '/\!$/d' test.txt

      

13)用‘sed’将全文中每行出现的第4个t换成T

sed 's/t/T/4' test.txt

      

14)用‘sed’将5-10行迁移至文章末尾

       sed '5,10{H;d};$G' test.txt

      

15)用‘sed’在第10行后插入GOOD

       sed '10aGOOD' test.txt

      

16)用‘sed’将SSH的Port端口由22号改7676,不允许root用户登录,然后通过查看配置文件是否修改成功