正则表达式就是处理字符串的方法,他是以行为单位来进行字符串的处理行为。正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某些特定字符串的处理程序。
一,grep
为本过滤命令: 是一种文本搜索工具,根据用户指定的模式,对目标文本进行检测。打印匹配到的行。
grep:由正则表达式或者字符及基本文本所编写的过滤条件。
grep匹配字符
-E:表示扩展正则表达式。
模糊过滤root字符串
精确过滤root字符串
精确过滤以root开头的字符串
-i 表示忽略大小写过滤
模糊过滤root和Root字符串
匹配字符串出现的次数
x后有任意的两个字符
x后有任意的两个字符,并且以此结尾。
xy中间有两个任意的字符并且一次结尾
以x开头并且以y结尾,中间只有两个字符的字符串。
y之前x出现任意次
y之前x出现0-1次
xy之间,x出现0-2次
xy之间,x最少出现2次
xy之间,x最少出现1次
xy最少出现一次
二,sed:行编辑器
1,sed的用法,后面可以跟的参数
-n:只有经过sed处理的那一行才会被列出来
-e:直接在命令行模式上进行sed的动作编辑
-f:至今将sed的动作写在一个文件内,-f 文件名,就可以执行filename内的sed动作
-i:直接修改读取文件的内容。
2,p:模式(显示)
显示文件带#的行
将显示结果覆盖掉源文件
显示3,6,8行
不显示文件的1-3行
3,d:删除模式
删除文件的1-4行
删除文件以#开头的行
除了UUID开头的文件都删
4,a:插入模式
在以UUID开头的行后插入hello
在UUID开头的行后插入两行\n表示换行的意思
5,i:在行前插入
在以UUID开头的行前插入hello
6,c模式:替换
将以c开头的那行替换成hello
7,w模式:写入
将以UUID开头的行写入/mnt/test
将以UUID开头的行号显示出来
sed '2r /mnt/hello' fstab :将/mnt/fstab的文件内容写入到fstsb文件的第二行后。
sed '$r /mnt/hello' fstab :将/mnt/fstab的文件内容写入到fstsb文件的最后一行后。
将全文的s换成S
将1-3行的s换成S
在haha文件的每行后插入空行
除了最后一行,每行后插入空行
显示行号
只显示最后一行
三,awk
逐行处理文本:支持在处理之前做一些准备工作,以及在处理后做一些总结性的工作
NR:表示行数,NF:表示列数
-F:表示以什么为分隔符进行处理。
截取以:为分隔符的第七列
打印第三行
打印以:为分隔符 第二行和第三行的第一列,并且在操作之前打印NAME