Linux sed命令增删改查的使用

目录

前言

一、sed是什么?

二、使用方法

1.命令格式

2.常用选项

3.示例

4.查看内容

4.1查看文件全部内容

4.2查看文件第5行内容

4.3查看2-4行内容

4.4查看最后一行内容

4.5去掉文件中以#和空格开头的行

5.增加内容

5.1在文件最后一行下增加内容

5.2在文件第一行增加内容

5.3在文件第3行下面增加内容

6.删除文件内容

6.1删除文件第一行

6.2删除文件最后一行

6.2删除文件3-6行

6.3删除文件中第1行,并在删除前备份

7.修改文件内容

7.1将文件中所有的root改为hello

7.2将文件中1-3行内容前加上#号

7.3将文件第3行修改为hello

7.4将第2行的第一个daemon修改为hello

四、总结


前言

总结了一点sed的基本使用方法,包括对文件的查看、修改、增加、删除。


一、sed是什么?

sed被称为流编辑器(stream editor),可以根据命令来处理数据流中的数据。

二、使用方法

1.命令格式

sed options script file

2.常用选项

选项描述
-e script

处理输入时,将script中指定的命令添加到已有命令中

-f file处理输入时,将file中指定的命令添加到已有命令
-n不产生命令输出,使用print命令来完成输出
-i修改源文件

3.示例

文件准备

[root@centos ~]# cat a.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
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
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

4.查看内容

4.1查看文件全部内容

[root@centos ~]# sed '' b.txt
[root@centos ~]# sed  -n 'p' a.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
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
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

4.2查看文件第5行内容

[root@centos ~]# sed -n '5p' a.txt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

4.3查看2-4行内容

[root@centos ~]# sed -n '2,4p' a.txt
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

4.4查看最后一行内容

[root@centos ~]# sed -n '$p' a.txt
operator:x:11:0:operator:/root:/sbin/nologin

4.5去掉文件中以#和空格开头的行

[root@centos ~]# cat b.txt
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {

[root@centos ~]# sed -r '/^#|^$/d' b.txt
worker_processes  1;
events {

5.增加内容

5.1在文件最后一行下增加内容

[root@centos ~]# sed '$ahello' a.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
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
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
hello

5.2在文件第一行增加内容

[root@centos ~]# sed '1ihello' a.txt
hello
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

5.3在文件第3行下面增加内容

[root@centos ~]# sed '3ahello' a.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
hello
adm:x:3:4:adm:/var/adm:/sbin/nologin

6.删除文件内容

6.1删除文件第一行

[root@centos ~]# sed '1d' a.txt
bin:x:1:1:bin:/bin:/sbin/nologin
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

6.2删除文件最后一行

[root@centos ~]# sed '$d' a.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
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
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

6.2删除文件3-6行

[root@centos ~]# sed '3,6d' a.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

6.3删除文件中第1行,并在删除前备份

[root@centos ~]# sed -i.bak '1 d' a.txt
[root@centos ~]# ll
total 8684
-rw-r--r-- 1 root root     353 Apr 16 08:46 a.txt
-rw-r--r-- 1 root root     385 Apr 16 08:04 a.txt.bak

7.修改文件内容

对文件内容搜索并替换,修改原文件需要加-i

7.1将文件中所有的root改为hello

[root@centos ~]# sed -n 's/root/hello/pg' a.txt
hello:x:0:0:hello:/hello:/bin/bash
operator:x:11:0:operator:/hello:/sbin/nologin

7.2将文件中1-3行内容前加上#号

[root@centos ~]# sed -n '1,3s/^/#/p' a.txt
#root:x:0:0:root:/root:/bin/bash
#bin:x:1:1:bin:/bin:/sbin/nologin
#daemon:x:2:2:daemon:/sbin:/sbin/nologin

7.3将文件第3行修改为hello

[root@centos ~]# sed '3 c\hello\' a.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
hello

7.4将第2行的第一个daemon修改为hello

[root@centos ~]# sed '2 s/daemon/hello/' a.txt
bin:x:1:1:bin:/bin:/sbin/nologin
hello: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


四、总结

以上就是今天要分享的内容,仅仅简单介绍了sed的使用,希望可以帮助到有需要的人,更多内容后续再补充,如果你有意见或建议,欢迎在评论区发表评论。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值