码迷,mamicode.com
首页 > 其他好文 > 详细

sed扩展

时间:2018-05-02 22:19:00      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:sed

sed扩展
  • 打印文件中特定的某行到某行之间的内容,//,//两行之间。
    [root@aminglinux-02 sed]# sed -n ‘/\[abcfd\]/,/\[rty\]/p‘ 1.txt 
    [abcfd]
    123
    324
    444
    [rty]
  • sed的大小写转换
    • 把每个单词的第一个小写字母变大写,\b是边界符开头第一个,\u是将下一个字符变大写
      [root@aminglinux-02 sed]# sed ‘s/\b[a-z]/\u&/g‘ 1.txt 
      Ert
      Fff
      **
      [Abcfd]
      123
      324
      444
      [Rty]
      **
      Fgfgf
    • 把所有小写变大写
      [root@aminglinux-02 sed]# sed ‘s/[a-z]/\u&/g‘ 1.txt 
      ERT
      FFF
      **
      [ABCFD]
      123
      324
      444
      [RTY]
      **
      FGFGF
    • 大写变小写
      [root@aminglinux-02 sed]# sed ‘s/[A-Z]/\l&/g‘ 1.txt 
      ddd
      fff
      **
      [fffcfd]
      123
      324
      444
      [rty]
      **
      fgfgf
  • sed在文件中某一行最后添加一个数字
    [root@aminglinux-02 sed]# sed -r ‘s/(^f.*)/& 12/g‘ 1.txt 
    fDDDdada 12
    fFFdada 12
    **
    [FFFcfd]
    1dadajk23
    324dada
    444iuiquei
    [rty]
    **
    fgfgf 12
  • sed删除某关键字的下一行到最后一行
    [root@aminglinux-02 sed]# sed ‘/r/{p;:a;N;$!ba;d}‘ 1.txt 
    fDDDdada
    fFFdada
    **
    [FFFcfd]
    1dadajk23
    324dada
    444iuiquei
    [rty]
    定义一个标签a,匹配c,然后N把下一行加到模式空间里,匹配最后一行时,才退出标签循环,然后命令d,把这个模式空间里的内容全部清除。
    if 匹配"c"
    :a
    追加下一行
    if 不匹配"$"
    goto a
    最后退出循环,d命令删除。
  • 如何使用sed打印1到100行包含某个字符串的行
    [root@aminglinux-02 sed]# sed -n ‘1,100{/da/p}‘ 1.txt 
    fDDDdada
    fFFdada
    1dadajk23
    324dada

sed扩展

标签:sed

原文地址:http://blog.51cto.com/akui2521/2111024

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!