sed  它和grep也能匹配符合的行,就是不能颜色显示

    -n    显示指定的行

    -i    会对文件进行真正的编辑(不建议使用)


打印第10行

[root@wy ~]# sed -n '10'p /etc/passwd       #p为打印的意思

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin


打印一个范围1到10行

[root@wy ~]# sed -n '1,10'p /etc/passwd


显示包含root的行

[root@wy ~]# sed -n '/root/'p /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin


[root@wy ~]# sed -n '/r.t/'p /etc/passwd


[root@wy ~]# sed -n '/r*t/'p /etc/passwd


注:那些特殊符号也是需要用 \ 来脱义,或者使用 -r 选项来进行脱义。


删除空行

[root@wy ~]# sed '/^$/'d /etc/passwd          #d表示删除


删除指定行

[root@wy ~]# sed '1,10'd /etc/passwd


替换功能  (与vim里替换一样)

sed命令_sed命令

sed命令_sed命令_02

sed命令_sed命令_03


所有行都替换成了login

sed命令_sed命令_04


假如想在所有行的末尾加上login,使用&

sed命令_sed命令_05


把数字删除,其实就替换成空就可以了

[root@wy ~]# sed 's#[0-9]##g' /etc/passwd

root:x:::root:/root:/bin/bash

bin:x:::bin:/bin:/sbin/nologin


调换位置,比如以冒号分隔的,把第一段和最后一段换一下

[root@wy ~]# sed -r 's#^([a-z0-9]+)(:.*:)(.*$)#\3\2\1#g' /etc/passwd

/bin/bash:x:0:0:root:/root:root

/sbin/nologin:x:1:1:bin:/bin:bin

/sbin/nologin:x:2:2:daemon:/sbin:daemon


用;来分隔多个表达式(等价于 sed -n -e '/root/p' -e '/wyy/p' /etc/passwd)

[root@wy ~]# sed -n '/root/p; /wyy/p' /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

wyy:x:500:500::/home/wyy:/bin/bash

wyy2:x:501:502::/home/wyy2:/bin/bash

解释说明 :

若一行中既有root又有wyy,则显示结果是匹配的行会显示两次。