sed 

-n 是安静模式,只有经过sed处理过的行才显示出来,其他不显示

-e 表示直接在命令行模式上进行sed的操作,是默认选项,不用写

-r 表示使sed支持扩展正则表达式

n1,n2不一定需要,选择要进行处理的行,如10,20表示在10~20行之间处理。

sed的动作支持如下参数

a 表示添加,后接字符串,添加到当前行的下一行

c 表示替换,后接字符串,用它替换n1到n2之间的行

d 表示删除符合模式的行,他的语法为sed '/regexp/d' ,斜杠之间是正则表达式,模式在d前面,d后面一般不接任何内容

i 表示插入,后接字符串,添加到当前行的上一行

p 表示打印,打印某个选择的数据,通常与-n一起使用

s 表示搜索,还可以替换,类似于vim里的搜索替换功能,例如,1,20s/old/new/g表示替换1到20行的old为new,g在这里表示处理这一行所有匹配的内容。

动作最好用‘’括起来,防止因空格导致错误

sed实例

cat -n /etc/passwd |sed '2,5d'

 

 cat -n /etc/passwd|sed '2,5d'

     1  # $FreeBSD: src/etc/master.passwd,v 1.40.22.1.4.1 2010/06/14 02:09:06 kensmith Exp $

     6  operator:*:2:5:System &:/:/usr/sbin/nologin

     7  bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin

     8  tty:*:4:65533:Tty Sandbox:/:/usr/sbin/nologin

     9  kmem:*:5:65533:KMem Sandbox:/:/usr/sbin/nologin

    10  games:*:7:13:Games pseudo-user:/usr/games:/usr/sbin/nologin

    在第二行的后面加上hello china字符串