前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sed工具(二) 原

sed工具(二) 原

作者头像
阿dai学长
发布2019-04-03 14:47:44
4570
发布2019-04-03 14:47:44
举报
文章被收录于专栏:阿dai_linux

扩展:sed应用

sed

  • 指定行范围匹配(sed打印1到10行包含某字符串的行)
代码语言:javascript
复制
[root@adai003 grep]# sed -n '1,10 {/oo/p}' test.txt
root:x:0:0:root:/root:/bin/bash
3233:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
  • sed删除某关键字的下一行到最后一行
代码语言:javascript
复制
[root@adai003 grep]# head -n5 test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
234:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
3233:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@adai003 grep]# sed '/daemon/{p; :a; N; $!ba; d}' test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
234:x:2:2:daemon:/sbin:/sbin/nologin
解析:定义一个标签a,匹配c,然后N把下一行加到模式空间里,匹配最后一行时,才退出标签循环,然后命令d,把这个模式空间里的内容全部清除。
  • 匹配打印某关键字符所在行以及下一行
代码语言:javascript
复制
[root@adai003 grep]# sed -n '/daemon/{N;p}' test.txt
234:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
  • 在某行最后加一指定字符 (sed在文件中某一行最后添加一个数字)
代码语言:javascript
复制
[root@adai003 grep]# sed 's/\(.*nologin.*\)/& 8/' test.txt |head -n3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin 8
234:x:2:2:daemon:/sbin:/sbin/nologin 8

解析: “.nologin.” 代表nologin所在的行,()是定义其为一个整体。

  • 切换大小写
代码语言:javascript
复制
1、切换单词首字母大小写
[root@adai003 grep]# sed 's/\b[a-z]/\u&/g' test.txt |head -n3
Root:X:0:0:Root:/Root:/Bin/Bash
Bin:X:1:1:Bin:/Bin:/Sbin/Nologin
234:X:2:2:Daemon:/Sbin:/Sbin/Nologin

2、切换所有字母大小写
[root@adai003 grep]# sed 's/[a-z]/\u&/g' test.txt |head -n3
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
234:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN

解析: sed中,使用\u表示大写,\l表示小写,\b表示单词首字母

  • 打印文件中特定的某行到某行之间的内容
代码语言:javascript
复制
[root@adai003 grep]# sed -n '/^root/,/daemon/p' test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
234:x:2:2:daemon:/sbin:/sbin/nologin
解析:打印以root开头的行和daemon所在行之间的内容。

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/07/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 扩展:sed应用
    • sed
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档