首页 > 代码库 > sed详解

sed详解

[gandefeng@localhost ~]$ sed ‘$i this is a new line‘ test 
this
is
a
this is a new line
test

 

sed [-hnV][-e<script>][-f<script文件>][文本文件] 

参数:
-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件,可接多个,但要分别对每个连续动作指定-e,一般只有一个月也可省略。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。

动作:
a:新增, a 的后面可以string,这些string会在新的一行,即出现目前的下一行 c:取代, c 的后面可以string,这些字串可以取代 特定的某一行,也可替换n1,n2 之间的行
d:删除, d 因为是删除,所以 d 不接后续 i:插入, i 的后面可以string,而这些string会在新的一行出现,即目前的上一行
p:打印, 亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s:取代, 可以直接进行取代的工作,通常这个 s 的动作可以搭配正则表达式
PS:以上动作一般用作接收其他动作或命令送过来的数据流,做处理后显示出来。
实例: 原简单测试文件:
[gandefeng@localhost ~]$ cat test 
this
is
a
test

a 新增:

在第一行后面新增一行

[gandefeng@localhost ~]$ sed 1a this a new line test 
this
this a new line
is
a
test

在最后一行新增一行

[gandefeng@localhost ~]$ sed $a this a new line test 
this
is
a
test
this a new line

i 插入
在第一行前插入,即插入的行为第一

[gandefeng@localhost ~]$ sed 1i this a new line test 
this a new line
this
is
a
test

在最后一行插入,及插入的行为倒数第二行


 

sed详解