1.简介
sed 是非交互式的编辑器。它不会修改文件,除非使用 shell 重定向来保存结果。默认情
况下,所有的输出行都被打印到屏幕上。
sed 编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先 sed 把
当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中
的行,完成后把该行发送到屏幕上。sed 每处理完一行就将其从临时缓冲区删除,然后将
下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed 便结束运行。sed 把
每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
2.定址
定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。
如果没有指定地址,sed 将处理输入文件的所有行。
地址是一个数字,则表示行号;是“$"符号,则表示最后一行。例如:
sed -n '3p' datale
只打印第三行
只显示指定行范围的文件内容,例如:
# 只查看文件的第 100 行到第 200 行
sed -n '100,200p' mysql_slow_query.log
地址是逗号分隔的,那么需要处理的地址是这两行之间的范围(包括这两行在内)。范围
可以用数字、正则表达式、或二者的组合表示。例如:
sed '2,5d' datale
#删除第二到第五行
sed '/My/,/You/d' datale
#删除包含"My"的行到包含"You"的行之间的行
sed '/My/,10d' datale
#删除包含"My"的行到第十行的内容
3.命令与选项