sed的输入

除了使用vi或者vim来编辑文本,还可以使用sed和awk命令编辑器批量处理 文本,本节学习sed编辑器。sed是
流编辑器
(stream editor),根据预先定好的规则处理文本。sed一次取出一行进行处理,并把结果输出到标准输出中。
1 用管道给sed输入
用管道给sed输入数据,举例如下:
运行后结果为:
wu lin nei zhuan
这里的
s
是
替换
(substitute)的意思。
2 sed命令从文本文件取数据
建立testfile文件,文件内容如下:
wu lin wai zhuan is good.
da ran fang is good.
xi you ji hou zhuan is good.
然后用sed命令把所有的
good
改成
wonderful
,输入:
sed 's/good/wonderful/' testfile
结果为:
wu lin wai zhuan is wonderful.
da ran fang is wonderful.
xi you ji hou zhuan is wonderful.
注意,s
ed命令并不会修改testfile内容,而是把结果输出到标准输出中
。
3 使用多个指令
在使用sed命令的时候,使用多个指令的时候要用
-e
选项。比如想把上面的testfile中的
is
改成
was
,把
good
改成
great
。
输入:
sed -e 's/is/was/;s/good/great/' testfile
输出结果为:
wu lin wai zhuan was great.
da ran fang was great.
xi you ji hou zhuan was great.
注意命令与命令之间使用
分号
隔开。
4 把指令放到文件中
有时候可以把较多的指令放进一个文件中,然后用sed命令去加载。比如建立一个文件去存储命令,建立文件sedfile,内容如下:
s/is/was/
s/good/great/
然后在sed命令后面增加
-f
参数去加载这个文件。
sed -f sedfile testfile
运行结果为:
wu lin wai zhuan was great.
da ran fang was great.
xi you ji hou zhuan was great.