sed的用法与实例介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36748278/article/details/81950318

我们先编写一个小文档,用于后期举例使用。

[danni@vm-xxx study]$ cat SedDemo.txt 
This is a sed text.
I am beautyful.
You are not beautyful.
He is also not beautiful.
Hei Hei.
Are you laugh?
No, you can not do that.
Are you sad?
Oh, It is very good.


sed 替换

sed [-e] 'instruction' file
[]:表示可以有也可以没有
-e:只有在有多个命令时才需要使用-e选项,他告诉sed将下一个参数解释为指令。

sed 's/beautyful/not beautyful/' SedDemo.txt:把所有的 beautyful 替换为 not beautyful
这里写图片描述

多重指令的实现方式
(1)使用分号相隔 sed 's/not beautyful/beautyful/; s/Hei/yeah/' SedDemo.txt
这里写图片描述
(2)在每个指令前放置-e
这里写图片描述
(3)使用shell的分行指令功能

[danni@vm-xxx study]$ sed '
> s/not beautyful/beautyful/
> s/Hei/yeah/' SedDemo.txt 

这里写图片描述

sed 脚本文件
当命令很少的时候,我们采取上述直接在命令行输入是可行的。但是当命令很长的时候,再输入这么长的脚本是不切合实际的。不过,我们可以通过创建脚本文件,吧要执行的命令书写在脚本文件中即可。
通过 -f 选项来指定命令行上的脚本文件的名字:sed -f scriptfile file ,scriptfile 即编写的脚本文件,file 即要操作的文本文件
编写脚本文件:vim SedScript

[danni@vm-xxx study]$ cat SedScript 
s/not beautyful/beautyful/
s/Hei/yeah/

执行脚本文件: sed -f SedScript SedDemo.txt

[danni@vm-xxx study]$ sed -f SedScript SedDemo.txt 
This is a sed text.
I am beautyful.
You are beautyful.
He is also beautyful.
yeah Hei.
Are you laugh?
No, you can not do that.
Are you sad?
Oh, It is very good.

sed默认输出是输出到终端,如果想把sed的输出重定向到另一个程序中,需要在后面指定一个I/O重定向符号。
sed -f scriptfile file > newfile

猜你喜欢

转载自blog.csdn.net/qq_36748278/article/details/81950318
今日推荐