一. grep:文本过滤工具 正则表达式引擎基于用户指定的“模式”,对目标文件逐行进行匹配检查,打印匹配到的行,默认打印到终端窗口
模式:
① 正则表达式元字符编写出来的过滤条件
正则表达式:由一类特殊的字符以及文本字符所编写的模式,并不代表字面含义,表达控制或者通配的功能正则表达式引擎:
grep [OPTIONS] PATTERN [FILE…] PATTERN 模式
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE…] 可以把模式写到一个文件中通过 -f 读 取,然后对 file进行过滤
② 元字符: [[:space:]]

在正则表达式中:

–color=auto:d对匹配到的文本着色后高亮显示

-o:仅显示匹配到的字符串本身;

-v, --invert-match:显示不能被模式匹配到的行;

-E:支持使用扩展的正则表达式元字符;

-q, --quiet, --silent:静默模式,即不输出任何信息;

-n,显示行号 -A #:after, 后#行 -B #:before,前#行

基本正则表达式元字符:{字符匹配,匹配次数,位置锚定,分组及引用}

grep的内容中特殊字符 grep匹配特殊字符_grep的内容中特殊字符


grep的内容中特殊字符 grep匹配特殊字符_模式匹配_02


grep的内容中特殊字符 grep匹配特殊字符_grep的内容中特殊字符_03


grep的内容中特殊字符 grep匹配特殊字符_正则表达式_04


eg:

显示etc/passwd文件中不以/bin/bash结尾的行

grep的内容中特殊字符 grep匹配特殊字符_grep的内容中特殊字符_05

分组及应用

():将一个或多个字符捆绑在一起,当作一个整体进行处理; (xy)*ab 命令行中括号有特殊意义所以用转义符\ Note:分组括号中的模式匹配 到的内容会被正则表达式引擎自动记录于内部的变量中,这些变量为: \1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符; \2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符; \3. … 括号可以嵌套不能交叉

找到前后一致的单词例如同事love 或者同是like l…e 如果grep “l…e.l…e" loves.txt 发现四句都可以出现要求前后一样的 ~]# grep "(l…e).\1” lovers.txt 后向引用:引用前面的分组括号中的模式所匹配到的字符; Grep “^r…t.r…t" /etc/passwd 这样前后可能会不一致 一个roo 一个r/ft Grep "^\ (r…t).\1” /etc/passwd

grep的内容中特殊字符 grep匹配特殊字符_正则表达式_06


查找ifconfig中的IP 地址

grep的内容中特殊字符 grep匹配特殊字符_元字符_07