三剑客:grep sed awk
grep:默认不支持扩展表达式,加 -E 或 egrep
Awk:支持所有正则
sed:默认不支持扩展表达式,加 -r
sed 格式
Sed 选项 命令 文件
工作原理:sed读取一行,首先将其放入缓存。然后处理,处理后,将缓存区的内容发送到终端,存储sed的内容的缓存区称之为模式空间。
Sed -e 多点操作
-r 使用扩展正则使用
-i接修改内容(如果不使用-i选项只是修改内存中的数据,不会影响磁盘文件)
-n 取消默认的文件输出,和p连用
a 追加到后面一行输出文本
c 取代指定的行
i 在制定行前添加(注意和-i的区别)
!指定行以外所有行应用(取反)
d 指定删除的行(如果不指定就默认匹配所有行)
s/目标内容/替换内容/g
p打印选中的行
awk 格式
awk 参数 ‘条件 动作’
NR 行 (行数)
NF 字段(个数)
-F 指定分隔符
$n 输出一个制定的字段
$NF 输出最后一个字段
$0 输出整条记录
awk特殊模式-BEGIN模式与END模式
BEGIN模块再awk读取文件之前就执行,一般用来定义我们的内置变量(预定义变量,eg:FS,RS)
需要注意的是BEGIN模式后面要接跟一个action操作块,包含在大括号内。awk必须在输入文件进行任何处理前先执行BEGIN里的动作(action)。我们可以不要任何输入文件,就可以对BEGIN模块进行测试,因为awk需要先执行完BEGIN模式,才对输入文件做处理。BEGIN模式常常被用来修改内置变量ORS,RS,FS,OFS等值。
grep 格式
-v:排除
-A数字:显示过滤的内容及接下来的几行
-n:显示行号
egerp:支持高级的正则相当于gerp -E
—color=auto:给过滤出来的内容加上颜色
-o:表示grep正则的执行过程