shell脚本小工具-----sed流编辑器

1、处理文件的原理及过程

在这里插入图片描述

2、使用方法

在这里插入图片描述

处理动作 :
在这里插入图片描述

-w将匹配行写入到新文件中
r整合,将两个文件合并
=显示行号
N提前将后一行的内容送入流编辑器

3、实例

(1)打印显示(动作一定要加’'单引号,一般-n和-p一起使用)
在这里插入图片描述

[root@server1 shells]# sed  -n 4,7p /mnt/passwd     //4,7是第4行至第7行
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

(2)增删改

###增(插入单行)
[root@server1 shells]# sed '2ihello wold' /mnt/passwd |head   //动作i在指定行之前插入内容
abc
hello wold
root:x:0:0:ROOT:/root:/bin/bash.
####插入多行(脚本)
[root@server1 shells]# sed '2ihello\nworld' /mnt/passwd |head    //利用换行符/n进行多行增加
abc
hello
world
root:x:0:0:ROOT:/root:/bin/bash.
bin:x:1:1:bin:/bin:/sbin/nologin.
####第二种方法

在这里插入图片描述

##删
[root@server1 shells]# sed '2d' /mnt/passwd |head    //第二行被删除
abc
bin:x:1:1:bin:/bin:/sbin/nologin.
daemon:x:2:2:daemon:/sbin:/sbin/nologin

在这里插入图片描述

###改
在这里插入图片描述
(3)对文件进行搜索替换操作(重点)

s默认只对每行的第一个关键字进行替换,p打印时默认只打印更改过的行

分隔符“/” “#” “@” 意义都一样

在这里插入图片描述
第一个:搜索每一行第一个关键字root改成ROOT,打印出来(p)
第二个:全局的root都换成ROOT然后打印出来
第三个:替换掉全局每行开头的#,取消全局注释并将变化的行打印
第四个:将全局的/sbin/nologin替换成itcast并将变化的行打印出来
第五个:将第10行的/sbin/nologin替换成Itcast并打印

-w:

sed -n '/^root/w westos' passwd   ##将passwd中以`^root`开头的行写入到westos文件中,且是覆盖的形式。

-c:

[root@node1 mnt]# sed '/root/c westos' passwd  ##将含有root的整行替换成westos

-i:

sed -e '1,5iwestos lell' passwd  ##在1到5行之前插入westos lell.

-r:

sed '5r westos' passwd    ##在passwd第5行之后将westos文件内容整合到passwd.

-N:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值