Linux_Stream Editor

sed 是一个文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除查看以及增加。

他的工作方式就是先从输入读取到的东西放入模式缓冲区,然后在对模式缓冲区进行操作。

 

参数选项:

-e : 在命令行模式上进行sed的操作

-n : 取消默认输出

-fsed动作写在一个文件内。然后-f就是启动这个脚本

-I : 修改读取的内容,而不是打印到控制台。

操作选项:

a: 新增,在当前行的下一行

c: 替换

s:替换

d: 删除

i:增加 ,在当前行的上一行

p: 打印

 

常见的例子:

删除:

删除某一行,5表示行数,d表示删除

sed -e '5d' /tmp/passwd.bak

范围删除,比如删除1-4行这个区间

sed -e '1,4d' /tmp/passwd.bak

删除最后一行:

sed -e '$d' /tmp/passwd.bak

删除空白行:

sed -e '/^$/d' /tmp/passwd.bak

 

显示:

显示第一行:

sed -n '1p' /tmp/passwd.bak

显示第m到第n行:

sed -n '1,3p' /tmp/passwd.bak

显示最后一行:

sed -n '$p' /tmp/passwd.bak

 

新增:

在某一行之后增加

sed '$a Nicky Test The Stream Editor\nThis the second line' /tmp/passwd.bak

在某几行之后增加

sed '2,4a Nicky Test The Stream Editor' /tmp/passwd.bak

在某一行之前增加:

sed '$i Nicky Test The Stream Editor' /tmp/passwd.bak

 

 

替换操作:

某一行替换成什么

#最后一行替换成ReplaceLine

sed '$c ReplaceLine ' /tmp/passwd.bak

#m行到第n行替换成

sed '4$c ReplaceLine ' /tmp/passwd.bak

***********************************************************

如果只是替换行中某一部分而言,需使用s命令

这里涉及到sed的规则表达式,s///

#把文件中root替换成nickyzhang,s表示替换,g表示全局,如果不指定是否全局,默认就替换第一个找到的

sed 's/root/nickyzhang/g' /tmp/passwd.bak

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值