linux学习三剑客之sed增删改查都有哪些知识?

一.sed命令的格式

完整格式

sed-n‘3s#oldboy#oldgirl#gp’filename
sed命令sed参数3表示第3行 s表示替换 gp表示标记(flag)filename

简单格式

这里记住条件命令即可
条件就是你要找哪1行,可以是行号或范围等等.
命令就是满足条件后,要做什么,可以是显示(p),删除(d),替换(s),增加(c a i)等等

找谁干啥
条件命令

二.sed命令常用参数

参数含义
-n取消默认输出
-i修改文件内容
-i.bak先备份文件为oldboy.txt.bak 然后修改文件内容
-r支持扩展正则
-f指定sed脚本

三.sed核心功能之查找(p)

1.模拟的文件

cat >~/lidao.txt<<EOF
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
EOF

2.根据行号显示某1行

[root@oldboyedu59 ~]# sed -n '5p' lidao.txt
105,feixue,CIO

3.根据行号范围进行显示

[root@oldboyedu59 ~]# sed -n '1,5p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

4.进行过滤(类似grep或egrep)

[root@oldboyedu59 /oldboy]# sed -n '/oldboy/p' lidao.txt
101,oldboy,CEO
[root@oldboyedu59 /oldboy]# sed -n '/[a-z]/p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO

找出文件中包含oldboy或yy的行

[root@oldboyedu59 /oldboy]# sed -nr '/oldboy|yy/p' lidao.txt
101,oldboy,CEO
104,yy,CFO

5.通过正则表达式进行范围过滤

[root@oldboyedu59 /oldboy]# sed -n '/102/,/105/p' lidao.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO      

四.sed核心功能之增加(c a i)

命令含义
creplace 清空这行内容然后写入新内容
aappend 在这行下面追加内容
iinsert 在这行上面插入内容
[root@oldboyedu59 /oldboy]# cat  lidao.txt 
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
[root@oldboyedu59 /oldboy]# sed '3a119,xiaohong,UFO'  lidao.txt 
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO


[root@oldboyedu59 /oldboy]# cat lidao.txt 
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
[root@oldboyedu59 /oldboy]# sed '3i12306,lidao,HO' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
12306,lidao,HO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO  

五.sed核心功能之删除(d)

1.测试文件

I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 1351441522

not 4900000448
my god,i am not oldbey,but OLDBOY!

2.删除 /oldboy/oldboy.txt中的空行

sed '/^$/d' oldboy.txt
sed -n '/^$/!p' oldboy.txt
grep -v '^$' oldboy.txt
awk 作为扩展
awk  '/^$/' oldboy.txt
awk  '!/^$/' oldboy.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值