每日课堂笔记day14

什么是正则表达式?

1、作用和特殊字符一样,正则表达式是为了处理大量的字符串及文本而定义的一套规则和方法。假设"@"代表"I am","!"代表"oldboy",则执行echo "@!"的结果就是输出"I am oldboy"

2、提高效率,快速获取到想要的内容。

3、适用于三剑客命令grep(egrep),sed,awk

4、以行为单位处理


容易混淆的事项:

1、和通配符的区别。

2、开发正则,一般是Perl兼容正则表达式

3、Linux系统的三剑客正则表达式


export LC_ALL=C

配置后正则表达式


正则表达式的分类

1、BRE基本正则表达式:对应的元有符

2、ERE扩展正则表达式:


基本正则:grep

^(尖角号) :以。。。开头

$ (美元符) :以。。。结尾

^$ :空行

. (点号) :匹配任意一个且只有一个字符,和通配符?一样。

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

* :重复前面字符0次或多次

。* :表示所有内容

^.* :以任意0个或多个字符开头的

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

[abc] :匹配括号内的任意一个字符a或b或c

[^abc] :取反,匹配不包含括号内a或b或c


扩展正则:

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

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

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

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

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

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

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

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

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

\n :引用前面括号里的内容


特殊预定义中括号


元字符表达式

\b :匹配单词边界,类似于grep -w

\d :匹配单个数字字符,这个表达式需要用grep -P使用(-P是过滤perl兼容正则表达式)



Linux三剑客:awk、sed、grep(egrep)


sed :流编辑器,对文件内容增删改查。

用法:sed 参数 sed内置命令字符 文件


参数:

-n :取消命令的默认输出

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

-e :连续多次编辑


内置命令符:

s :替换

g :全局替换

p :打印

d :删除


1、sed 's/oldboy/oldgirl/g' oldgirl.txt

临时修改内容

永久修改用sed -i

2、sed -e 's/oldboy/oldgirl/g' -e 's/49000448/643926899/g'  oldgirl.txt 

连续使用,连续多次更换

3、sed '/oldboy/d' oldgirl.txt

打印除了oldboy所在行的所有行

4、sed -n '/oldboy/p' oldgirl.txt

显示oldboy所在的行



sed -rn "s#^IPADDR=##gp" ifcfg-eth0

awk -F "=" 'NR==16{print $2}' ifcfg-eth0

查看裸的IP地址

你可能感兴趣的:(每日课堂笔记day14)