3月19 日课堂笔记day14

Linux正则表达式与三剑客知识应用实践

1、什么是正则表达式?

作用和特殊字符一样。

正则表达式是为处理大量的字符串及文本而定义的一套规则和方法。

开发者

假设"@"代表“I am”,"!"代表“oldboy”,

则执行echo "@!"的结果就是输出“I am oldboy”。

^尖叫号  以...开头,^oldboy 以oldboy开头

$美元符   以...结尾  oldboy$ 以oldboy结尾

^$空行   $                                         叨re

. 代表任意一个字符,和通配符?  不匹配空行

\让有意义的字符 脱掉马甲 还原本义

*表示所有内容                                       

^.*     匹配以任意0个多个字符开头的内容

.*$     以任何0个或多个字符结尾

[abc]   匹配[]集合内的任意一个字符a或者b或c or

[^abc]  匹配不包括^后的任意字符a或b或c

2  扩展正则(ERE)  egrep

+       匹配前一个字符1次或一次以上

[:/]+   匹配:或者/一次或多次

?      匹配前一个字符0或1次

|       分组,或者同时过滤多个字符串

()      分组过滤被括起来的东西表示一个整体

\n     ()的内容可以被\n引用 

a{n,m} 匹配前一个字符最少n次,最多m次

a{n,} 匹配前一个字符最少n次

a{n} 匹配前一个字符正好n次

a{,m} 匹配前一个字符最多m次

 3 元字符表达式

\b 匹配单词边界         -w 过滤出有该单词的一行

\d 匹配单个数字 

grep -p       -p 用于过滤Perl兼容正则表达式

三剑客:

awk sed grep

sed 流编辑器

(选项)

-n 取消命令的默认输出  sed -n  '2,3p'

-i 修改文件,而不是输出到终端

-e 多次编辑

-r 支持拓展正则

如果不使用-i选项sed只修改内存中的数据,不影响磁盘上的文件

sed内置命令符说明

s 替换

g 全局 global

p 打印 print

d 删除 delete

/过滤

a向下

i向上

's# # #g' 文件名  前替换后

sed   

ifconfig eth0|sed -n 2p|sed 's#^.*inet##g'|sed 's#netm.*$##g' 10.0.0.201 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容