1.什么是 sed
vi, emacs 这类编辑器,被称为交互式编辑器。但当我们需要在程序中完成文本处理时,它就帮不上忙了。此时就需要一些能够在命令完成的
编辑工具。
我们期待一切管理流程都能自动化,包括能够批处理的方式编辑文件。许多文本编辑的需求是对文本的每一行进行相同的操作。这样的处理 sed
就能够用 sed 完成。
sed 号称流编辑器。什么是流编辑器呢?流编辑器可以对从管道这样的标准输入接收的数据进行编辑。因此,无需将要编辑的数据存储在磁盘上的
文件中。因为可以轻易的将数据管道输出到 sed,所以,将 sed 用作强大的 shell 脚本中长而复杂的管道是很容易的。
1.sed 的工作方式
sed 通过对输入数据执行任意数量用户指定的编辑操作(命令)。sed 是基于行的,因此按顺序对每一行执行命令。然后,sed 将其结果写入标准输出,
它不修改任何输入文件。
//删除 1,5 行
sed -e '1,5d' ./passwd.bak
//删除注释
sed -e '/^#/d' passwd.bak
2.更强大的 sed
1.替换
//将 aaa 替换成 bbb, 全局的
sed -e 's/aaa/bbb/g' 文件地址
//将前面1~10行 aaa 替换成 bbb, 全局的
sed -e '1,10s/aaa/bbb/g' 文件地址
3.组合
sed -n -e '=;p' 文件