鸟哥的私房菜——正则表达式

通配符和正则表达式的区别
语系会影响正则表达式

符号

[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] :print:] [:punct:] [:upper:] [:space:] [:xdigit:]
英文大小写字符与数字 英文大小写字符 空格键与[tab]键 代表键盘上面控制按键 代表数字 除了 空格符以外的所有按键 小写字符 任何可以被打印出来的字符 标点字符 大写字符 任何会产生空白的字符 十六进制的数字类型

grep

-An 是列出该行后边的n行
-Bn 是列出该行前边n行
鸟哥的私房菜——正则表达式_第1张图片
正向查找和反向查找
鸟哥的私房菜——正则表达式_第2张图片
利用[]来查找集合字符
查找含有某个字符的单词
查找不含有某个字符的单词
以大写字母开头的句子
不以大写字母开头的句子
鸟哥的私房菜——正则表达式_第3张图片
以“.”为行尾的句子
空白行

鸟哥的私房菜——正则表达式_第4张图片
. 代表一定有一个字符
*代表重复前一个字符,0次到无数次
可以使用{}来限定次数
鸟哥的私房菜——正则表达式_第5张图片

sed

-n:使用该参数后,只显示经过sed处理的那一行,正常是所有数据均会内列到屏幕上
-e:直接在命令行模式上进行sed的操作编辑
-f:将sed的操作写在一个文件内
-r:使用扩展型正则表达式的语法
-i:直接修改读取的文件内容,而不是由屏幕输出
a:新增加一行,a的后面可以加字符
c:替换
d:删除
i:插入
p:打印,将某个选择的数据打印出来
s:替换

删除行
鸟哥的私房菜——正则表达式_第6张图片
增加行
鸟哥的私房菜——正则表达式_第7张图片
增加多行

行替换
将多行换成一行
鸟哥的私房菜——正则表达式_第8张图片
打印指定行
鸟哥的私房菜——正则表达式_第9张图片
上图中5,6,7行均输出了两次
鸟哥的私房菜——正则表达式_第10张图片
字符替换与查找
注意netmask前边有个空格
鸟哥的私房菜——正则表达式_第11张图片
可以通过字符查找来进行删除
鸟哥的私房菜——正则表达式_第12张图片
文件修改
将前三行的最后一个标点符号‘.‘改成’!’
鸟哥的私房菜——正则表达式_第13张图片
之前介绍的各种命令都可以在-i参数中使用,只不过原来并不会对文件产生影响,但是使用-i参数时是直接对源文件进行修改

扩展正则表达式

在使用正则表达式来去除空白行和注释行时,需要使用两次管道
鸟哥的私房菜——正则表达式_第14张图片
通过扩展正则表达式可以进行简化
鸟哥的私房菜——正则表达式_第15张图片
扩展正则表达式的字符

+ ? | () ()+
重复一个及以上的前一个字符 零个或一个的前一个字符 找出群组字符串 找出多个重复群组的判别

鸟哥的私房菜——正则表达式_第16张图片

格式化输出printf

awk数据处理

awk可以将一行分为多个字段,对每个字段进行处理,默认是以空格划分字段
鸟哥的私房菜——正则表达式_第17张图片
逻辑运算字符

> < >= <= == !=
大于 小于 大于或等于 小于或等于 等于 不等于

输出每一行的第一列和第三列
鸟哥的私房菜——正则表达式_第18张图片
通过限定条件来输出
鸟哥的私房菜——正则表达式_第19张图片

文件对比

diff

参数:
-b:忽略一行当中,仅有多个空白的差异
-B:忽略空白行的差异
-i:忽略大小写的不同
鸟哥的私房菜——正则表达式_第20张图片

cmp

以字节为单位进行比较
鸟哥的私房菜——正则表达式_第21张图片

patch

你可能感兴趣的:(鸟哥的Linux私房菜,正则表达式)