sed编辑器

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;

语法:

sed  [options]  ‘[command]’  [filename]

options:

-n    抑制自动(默认的) 输出 ***  读取下一个输入行

-e    执行多个sed指令

-f     运行脚本

-i     编辑文件内容 ***

-i.bak      编辑的同时创造.bak的备份

-r     使用扩展的正则表达式 ***

command:

a     在匹配后追加 ***

i      在匹配后插入 ***

p     打印 ***

d     删除 ***

r/R  读取文件/一行

w     另存

s      查找

c      替换

y     替换

h/H 复制拷贝/追加模式空间(缓冲区)到存放空间

g/G 粘贴 从存放空间取回/追加到模式空间

x     两个空间内容的交换

n/N 拷贝/追加下一行内容到当前

D     删除\n之前的内容

P     打印\n之前的内容

b     无条件跳转

t      满足匹配后的跳转

T     不满足匹配时跳转

 

例子:

1.显示文件第三行

[root@xuegod63 tmp]# sed -n '3p' passwd

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

 

2.显示文件前三行

[root@xuegod63 tmp]# sed -n '1,3p' passwd

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

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

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

 

3.显示文件除前三行之外的全部内容

[root@xuegod63 tmp]# sed -n '1,3!p' passwd

 

4.显示文件第三行和之后的三行

[root@xuegod63 tmp]# sed -n '3,+3p' passwd

 

在文件头插入“###”

[root@xuegod63 tmp]# sed '1i###' passwd  > a.txt

 

在文件尾插入"@@@"

[root@xuegod63 tmp]# sed '$a@@@' passwd  > a.txt

 

把文件第三行替换成“$$$”

[root@xuegod63 tmp]# sed '3c$$$'  passwd

 

 

 

复制粘贴

把文件的第二行到第四行复制到文件的末尾

[root@xuegod63 tmp]# sed '2,4H;$G' passwd > b.txt

h/H 复制拷贝/追加模式空间(缓冲区)到存放空间

g/G 粘贴 从存放空间取回/追加到模式空间

 

sed中的正则:

^  $  .  *

例子:

1.删除空行    d      删除 ***

[root@xuegod63 tmp]# sed '/^$/d' passwd  > c.txt

 

把fstab中包含ext4的记录(行)写入新的文件中

 

[root@xuegod63 tmp]# sed '/ext4/w newfstab2' /etc/fstab

转载于:https://my.oschina.net/034/blog/1551863

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值