s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如
1,20s/old/new/g 就是啦!
实例
我们先创建一个 testfile 文件,内容如下:
$ cat testfile #查看testfile 中的内容
HELLO LINUX!Linuxis a free unix-type opterating system.Thisis a linux testfile!Linux test
GoogleTaobaoRunoobTesetfileWiki
$ sed -e 4a\newLine testfile
HELLO LINUX!Linuxis a free unix-type opterating system.Thisis a linux testfile!Linux test
newLine
GoogleTaobaoRunoobTesetfileWiki
以行为单位的新增/删除
将 testfile 的内容列出并且列印行号,同时,请将第
2~5 行删除!
$ nl testfile | sed '2,5d'1 HELLO LINUX!6Taobao7Runoob8Tesetfile9Wiki
sed 的动作为 2,5d,那个 d 是删除的意思,因为删除了
2-5 行,所以显示的数据就没有 2-5 行了, 另外,原本应该是要下达 sed -e 才对,但没有
-e 也是可以的,同时也要注意的是, sed 后面接的动作,请务必以 '...' 两个单引号括住喔!
只要删除第 2 行:
$ nl testfile | sed '2d'1 HELLO LINUX!3Thisis a linux testfile!4Linux test
5Google6Taobao7Runoob8Tesetfile9Wiki
要删除第 3 到最后一行:
$ nl testfile | sed '3,$d'1 HELLO LINUX!2Linuxis a free unix-type opterating system.
在第二行后(即加在第三行) 加上drink tea? 字样:
$ nl testfile | sed '2a drink tea'1 HELLO LINUX!2Linuxis a free unix-type opterating system.
drink tea
3Thisis a linux testfile!4Linux test
5Google6Taobao7Runoob8Tesetfile9Wiki
如果是要在第二行前,命令如下:
$ nl testfile | sed '2i drink tea'1 HELLO LINUX!
drink tea
2Linuxis a free unix-type opterating system.3Thisis a linux testfile!4Linux test
5Google6Taobao7Runoob8Tesetfile9Wiki
如果是要增加两行以上,在第二行后面加入两行字,例如 Drink
tea or ..... 与 drink beer?
$ nl testfile | sed '2a Drink tea or ......\
drink beer ?'1 HELLO LINUX!2Linuxis a free unix-type opterating system.Drink tea or......
drink beer ?3Thisis a linux testfile!4Linux test
5Google6Taobao7Runoob8Tesetfile9Wiki