UNIX shell学习(2)-sed

 sed的工作过程:

    sed剪辑器逐行处理文件(或输入),并将输出结果发送到屏幕。sed把当前正在处理的行保存在一个临时缓冲区中,这个缓冲区称为模式空间或临时缓冲。sed处理完模式空间中的行后(即在该行上执行完sed命令后),就把该行发送到屏幕上(除非之前有命令删除这一行或取消打印操作)。sed每处理完一行就将其从模式空间中删除,然后将下一行读入空间,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改或破坏源文件。

    如果要把正则表达式分隔符改成另一个字符,比如,只要在这个字符前加一个反斜杠,在字符后跟上正则表达式,在跟上这个字符即可。

    例:sed -n '/cREcp' filename 

         sed -n '/12//10//04/p' filename

         sed -n '/x12/10/04xp' filename

         后两个都是查找"12/10/04"字符串。

 

sed的命令及其功能: 

命令

功能

a/

在当前行后添加一行或多行

c/

用新文本修改(替换)当前行中的文本

d

删除行

i/

在当前行之前插入文本

h

把模式空间里的内容复制到暂存缓冲区

H

把模式空间里的内容追加到暂存缓冲区

g

取出暂存缓冲区的内容,将其复制到模式空间,覆盖该处原有内容

G

取出暂存缓冲区的内容,将其复制到模式空间,追加在原有内容后面

l

列出非打印字符

p

打印行

n

读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理

q

结束或退出sed

r

从文件中读取输入行

!

对所选行以外的所有行应用命令

s

用一个字符串替换另一个

 替换标志

g

在行内进行全局替换

p

打印行

w

将行写入文件

x

交换暂存缓冲区与模式空间的内容

y

将字符转换为另一字符(不能对正则表达式使用y命令)

 

sed选项

选项

功能

-e

允许多项编辑

-f

指定sed脚本文件名

-n

取消默认的输出

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值