(一)sed是一种非交互式的流编辑器,可动态编辑文件。sed处理的对象是文件的数据流。sed的工作模式是,比对每一数据行,若符合样式,就执行制定的操作。
sed语法:sed 'pattern' 文件
1)删除某一范围的数据行
sed '1,4d' file:删除file的1-4行。
2)把含有样式的数据行删除
sed '/hello/d' file:删除含有hello的行,将其余的行进行显示。
3)删除不含有样式的数据行
sed '/hello/!d' file:把不含有hello的行删除。
4)把含有样式的行显示出来
sed '/hello/p' file:把含有hello的行打印出来,但是同时会显示不符合的数据行。
sed -n '/hello/p' file:把含有hello的行打印出来,但是不显示不符合的数据行。
5)取代符合样式的字符串进行替换
sed -n 's/hello/world/p' file:替换每一行的第一个hello
sed -n 's/hello/world/gp' file:进行全局替换
6)删除符合样式的的字符串
sed 's/hello//' file:将每一行的第一个出现的hello删除
sed 's/hello..//' file:将符合样式hello...的字符串删除
7)其他用法
sed -n '/hello/s/world/war/p' file:找到存在hello的行,将每行的world替换成war
sed -n '/aaa/,/bbb/s/hello/world/p' file:将含有aaa到bbb的行中的hello替换成world
(二)awk是一种可以处理数据、产生格式化报表的语言,功能十分强大。awk的工作方式是读取数据文件,将每一行数据视为一条记录,每笔记录以字段分隔符分成若干字段,然后输出各个字段的值。
awk语法:awk 'pattern' 文件
awk '{操作}' 文件
1)用法一实例
awk '/hello/' file:显示含有hello的数据行
2)用法二实例
awk '{print $1 $2}' file:打印file中的第一个字段和第二个字段
3)打印符合样式的行的字段值
awk '/hello/{print $1 $2}' file:打印含有hello行的第一个字段和第二个字段
awk -F : '/hello/{print $1 $2}' file:-F制定字段分隔符,即IFS(默认为空格,tab,换行)
4)设定输出字段之间的分隔符
awk -F : 'begin{OFS="==="}/hello/{print $1 $2} file:设置输出字段分隔符为===