function:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
sed练习案例
1、将/etc/passwd的内容以行号列出来,并将2-35行内容删除
[iyunv@localhost ~]# nl /etc/passwd | sed '2,35d' 注意:原文件内容并没有删除,只是显示的时候删除了2-35行内容
2、在第二行后面添加 "I am studing linux"[在第三行显示]
[iyunv@localhost ~]# nl /etc/passwd | sed '2a I am studing linux'
a (add)新增一行, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行) 注意:如果添加多行,则需要在命令的结尾打上\,然后按住ctrl+回车 换行输入
[iyunv@localhost ~]# nl /etc/passwd | sed '2a I am studing linux\
drink beer?'
3、以行单位替换显示:将2-35行的内容替换成“NO number 2-35”显示
[iyunv@localhost ~]# nl /etc/passwd | sed '2,35c NO number 2-35'
c (change),替换显示