20171121 grep 正则表达式

diff与patch ,grep 正则表达式

一、diff 与 patch

1. diff  用来对比两个文件的差异,并输出出来保存在一种“补丁文件”中:

diff

2.diff -u 通过-u选项来输出统一的“unfied 模式”

diff2

3.patch -b自动备份改变了的文件

4.利用diff -u和patch -b来复制文件

diff1

二、作业:

1.找出ifconfig “网卡名”命令结果中本机的 IPv4 的地址

ifconfig ens33|grep netmask|tr -s ” “|cut -d ” ” -f3

2.查出分区空间使用率的最大百分比值

df|grep / |tr -s ” “|cut -d ” ” -f5|sort -n|tail -n1

df

3.查出用户UID最大值的用户名、UID及shell类型

getent passwd|cut -d: -f1,3,7|sort -n -t: -k2|tail -1

df1

三、grep命令

1. grep、sed、awk号称文件编辑的三剑客

2. grep在CentOS 6和CentOS 7中是不一样的,在CentOS 6上面grep是一个内部命令:

g1

在CentOS 7上面是一个别名 :

g2

3.

基本用法:grep 可以使用以行为单位,键盘输入,然后过滤,再显示出匹配结果

g3

grep +文件 可以用来匹配文件内的内容

g4

同样grep支持键盘输入,也就支持管道技术

g5

grep 可以后接命令,grep + `   `

g6

4. 选项

-v 与匹配的内容,恰恰相反

g7

-i 不检查大小写

g8

-n 显示出包含字符串的行号

g9

-c 统计匹配到的次数

g10

-q  静默模式,就是匹配出来,但是什么都不显示

g11

-o  仅显示你搜索到的字符串

g12

-e 或的关系 类如-e djj  -e

-w 匹配整个单词

四、正则表达式:

1. 相对于文件的通配符而言,正则表达式是用来匹配字符串的,而通配符是用来匹配文件名称。                   它是有一类的特殊字符编写的,其中的字符不一定表示字面意思,而是表示控制或通配的作用。

2. 正则表达式分两类:基本正则表达式和扩展正则表达式

3. 元字符的分类:字符匹配,匹配次数,匹配位置,分组

 

字符匹配: .  表示任意字符

z

[ abc ]  表示abc中的任何其中一个字符

z1

[^] 匹配除了符合条件的任意一个字符

z3

[:alnum:]代表字母和数字  [:alpha:]代表任何英文大小写字符

[:lower:]小写字母   [:upper:]大写字母

[:blank:]空白字符(空格和制表符)[:space:]水平和垂直的制表符(比[:blank:]                                                      范围更大)

匹配次数:用在指定次数的字符后面,用于指定前面字符要出现的次数

*任意次数,.*就表示任意字符的任意的次数

z4

\?匹配其前面的字符0或1次

z5

z6

\+匹配其前面的字符至少一次

z7

z8

\{n\}匹配前面的字符n次

z9

\{,n\}匹配前面的字符至多n次

zi

\{n,\}匹配前面的字符至少n次

zi1

匹配位置:

一行中:    ^ 行首锁定   $行尾锁定

单词行: \<或\b锁定词首     \> 或 \b词尾锁

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88798