Sed编辑器
前面我们介绍了普通的交互式编辑器(Vim),可以通过键盘命令来交互式插入、删除、或替换文本中的数据,这儿会在解说Linux中两个广泛使用的命令行编辑器:sed和gawk;能够轻松实现自动化格式化、插入、修改、删除文本等;
1. Sed编辑器基础
又称为流编辑器(Stream editor),通过处理数据前基于事先提供的一组规则来编辑数据流;
sed编辑器可以通过命令来处理数据,这些命令来自:
- 命令行输入
- 命令文本文件
编辑器执行的流程:
- 一次读取一行数据
- 根据提供的编辑器命令匹配数据
- 按照命令修改流中的数据
- 将新的数据输出到STDOUT
有多少行数据,就重复这个流程多少次;
sed命令格式:
sed options script file
script指定了用于数据流的单个命令,如果需要多个命令要么使用-e选项在命令行中指定,要么使用-f选项在单独的文件中指定;
1. 在命令行定义编辑器命令
-
默认情况下,编辑器会将指定的命令应用到STDIN输入流上,可以直接将数据通过管道符(|)输入编辑器处理;如:
echo “this are leslie” | sed '/s/are/is/'
这儿只是修改了一行,如果要修改多行,我们可以指定文本文件;这里的s命令是编辑器替换文本命令,后面会