sed过滤后写入文件_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<

2.根据行号显示某1行

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

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

[root@oldboyedu59 ~]# sed -n '1,5p' lidao.txt101,oldboy,CEO102,zhangyao,CTO103,Alex,COO104,yy,CFO105,feixue,CIO

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

[root@oldboyedu59 /oldboy]# sed -n '/oldboy/p' lidao.txt101,oldboy,CEO[root@oldboyedu59 /oldboy]# sed -n '/[a-z]/p' lidao.txt101,oldboy,CEO102,zhangyao,CTO103,Alex,COO104,yy,CFO105,feixue,CIO110,lidao,COCO

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

[root@oldboyedu59 /oldboy]# sed -nr '/oldboy|yy/p' lidao.txt101,oldboy,CEO104,yy,CFO

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

[root@oldboyedu59 /oldboy]# sed -n '/102/,/105/p' lidao.txt102,zhangyao,CTO103,Alex,COO104,yy,CFO105,feixue,CIO

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

| 命令 | 含义 | | ---- | ---------------------------------- | | c | replace 清空这行内容然后写入新内容 | | a | append 在这行下面追加内容 | | i | insert 在这行上面插入内容 |

[root@oldboyedu59 /oldboy]# cat  lidao.txt 101,oldboy,CEO102,zhangyao,CTO102,zhangyao,CTO103,Alex,COO104,yy,CFO105,feixue,CIO105,feixue,CIO110,lidao,COCO[root@oldboyedu59 /oldboy]# sed '3a119,xiaohong,UFO'  lidao.txt 101,oldboy,CEO102,zhangyao,CTO102,zhangyao,CTO119,xiaohong,UFO103,Alex,COO104,yy,CFO105,feixue,CIO105,feixue,CIO110,lidao,COCO[root@oldboyedu59 /oldboy]# cat lidao.txt 101,oldboy,CEO102,zhangyao,CTO102,zhangyao,CTO119,xiaohong,UFO103,Alex,COO104,yy,CFO105,feixue,CIO105,feixue,CIO110,lidao,COCO[root@oldboyedu59 /oldboy]# sed '3i12306,lidao,HO' lidao.txt101,oldboy,CEO102,zhangyao,CTO12306,lidao,HO102,zhangyao,CTO119,xiaohong,UFO103,Alex,COO104,yy,CFO105,feixue,CIO105,feixue,CIO110,lidao,COCO
79f41588e8877e270a116914adf3bd58.png

五.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.comour size is http://blog.oldboyedu.commy qq is 1351441522not 4900000448my god,i am not oldbey,but OLDBOY!

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

sed '/^$/d' oldboy.txtsed -n '/^$/!p' oldboy.txtgrep -v '^$' oldboy.txtawk 作为扩展awk  '/^$/' oldboy.txtawk  '!/^$/' oldboy.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值