linux 三剑客

一、正则表达式

1.基本正则表达式元字符

1. ^ 尖角符号:表示以什么开头的信息
[root@workstation ~]$ cat /etc/selinux/config |egrep -v '^#|^$'
^# 代表以#开头  ^$代表空行开头

2. $ 美元符号:表示以什么结尾的信息
[root@workstation ~]$ ll /etc -F |grep /$
过滤/结尾的信息,此处为目录

3. . 点符号:匹配任意一个字符且只有一个字符

4. * 星符号:匹配任意0个或多个连续的前一个字符,.* 结合匹配任意所有信息

5. [] 匹配指定范围内的一个字符    [ABCDE]        匹配ABCDE中任意一个字符

6. [ - ] 匹配指定范围内的一个字符    [a-zA-Z0-9]        匹配a-z,A-Z,0-9中任意一个字符,也可以写为[a-Z0-9]

7. [^] 匹配不在指定范围内的一个字符    [^a-z0-9]        匹配大写的A-Z

8. \ 用来转移元字符

9. \< 词首定位符

10. \> 词尾定位符

11. x\{m\}    字符x重复出现m次
12. x\{m,\}    字符x重复出现m次以上
13. x\{m,n\}    字符x重复出现m到n次

2.扩展正则表达式元字符

1. +    匹配一个或多个前导字符

2. ?    匹配零个或一个前导字符

3. a|b    匹配a或b

4. ()    组字符
例:egrep 'ro+' /etc/passwd        匹配一个或多个o
    egrep '(ro)+' /etc/passwd    匹配一个或多个ro

5. x{m}    x重复m次
6. x{m,}    x重复至少m次
7. x{m,n}    x重复m到n次

二、grep

1.说明

命令格式:grep [PATTERN] filename1 filename2 ...

1.grep:在文件中全局查找指定的正则表达式,使用基本元字符。grep -E = egrep
2.egrep:支持基本元字符和拓展元字符
3.fgrep:按字面解释所有字符

 \w        所有字母与数字,称为字符[a-Z0-9]

示例:r开头t结尾,中间有任意个字符


\W        所有字母与数字之外的字符,称为非字符

示例:上述示例多一个任意个非字符结尾

2.选项

-i, --ignore-case         ignore case distinctions        忽略大小写

linux 三剑客_第1张图片

-v        反向查找,只显示不匹配的行

注意,-v 是选项,如果过滤帮助等信息的主要转义

-r        针对目录递归,过滤目录下文件

linux 三剑客_第2张图片

-o        只显示匹配的内容

linux 三剑客_第3张图片

-n        显示行号

 -c        显示匹配了多少行

-A, --after-context=NUM   print NUM lines of trailing context

示例:显示匹配行并显示其后面一行

 -B, --before-context=NUM  print NUM lines of leading context

示例:显示匹配行并显示其前两行

linux 三剑客_第4张图片

-C, --context=NUM         print NUM lines of output context      

示例:显示匹配行及其上下三行

linux 三剑客_第5张图片

三、sed

命令格式

sed [options] 'commond' file(s)

sed [options] -f sctiptfile file(s)

与grep正则表达式一样,sed在文件查找模式时也可以使用正则表达式(RE)和各种元字符。

正则表达式是括在斜杠间的模式,用于查找和替换,以下是sed支持的元字符

基本元字符:^ $ . * [] [^] \< \> \(\) \{\}

扩展元字符:? + {} | (),使用扩展元字符需要加 -r, --regexp-extended

示例一:将每一行第一个A换成b

示例二:g 将每一行所有A换成b

示例三:i 将每一行所有A换成b,忽略A的大小写   

linux 三剑客_第6张图片

 

 

你可能感兴趣的:(运维工具,linux,运维,服务器)