天天看点

每天三分钟搞定linux shell脚本(35) sed编辑器来了!!!sed的输入

sed的输入

每天三分钟搞定linux shell脚本(35) sed编辑器来了!!!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.
           

继续阅读