zoukankan      html  css  js  c++  java
  • 10.15 sed 命令实践

    在n行前插入

    [root@wen data]# sed '2i 106,dandan,CSO' person.txt
    101,oldboy,CEO
    106,dandan,CSO
    102,zhangyao,CTO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO
    在n行后插入
    [root@wen data]# sed '2a 106,dandan,CSO' person.txt
    101,oldboy,CEO
    102,zhangyao,CTO
    106,dandan,CSO
    103,Alex,COO
    104,yy,CFO
    105,feixue

    插入多行
    [root@wen data]# sed '2a 106,dandan,CSO 107,bingbing,CCO' person.txt
    101,oldboy,CEO
    102,zhangyao,CTO
    106,dandan,CSO
    107,bingbing,CCO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO
    CIO
    [root@wen data]# sed '2a 106,dandan,CSO
    > 107,bingbing,CCO' person.txt
    101,oldboy,CEO
    102,zhangyao,CTO
    106,dandan,CSO
    107,bingbing,CCO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO

    删除指定行
    [root@wen data]# sed '2d' person.txt
    101,oldboy,CEO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO
    [root@wen data]# sed '1~2d' person.txt
    102,zhangyao,CTO
    104,yy,CFO
    [root@wen data]# sed '1,+2d' person.txt
    104,yy,CFO
    105,feixue,CIO
    [root@wen data]# sed '2,3d' person.txt
    101,oldboy,CEO
    104,yy,CFO
    105,feixue,CIO
    [root@wen data]# sed '/feixue/,2d' person.txt
    101,oldboy,CEO
    102,zhangyao,CTO
    103,Alex,COO
    104,yy,CFO
    --------------------
    替换
    按行替换
    [root@wen data]# sed '2c 106,dandan,CSO' person.txt
    101,oldboy,CEO
    106,dandan,CSO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO
    精确到行替换,s前面添加行号n
    [root@wen data]# sed "2s#CTO#CCO#g" person.txt
    101,oldboy,CEO
    102,zhangyao,CCO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO
    ------
    [root@wen data]# cat test.txt
    a
    b
    a
    [root@wen data]# x=a
    [root@wen data]# y=b
    [root@wen data]# echo $x $y
    a b
    [root@wen data]# sed 's#$x#Sy#g' test.txt
    a
    b
    a
    双引号解析变量
    [root@wen data]# sed "s#$x#$y#g" test.txt
    b
    b
    b
    [root@wen data]# eval sed 's#$x#$y#' test.txt
    b
    b
    b

     


    [root@wen data]# sed '1,3s#C#--&--#g' person.txt
    101,oldboy,--C--EO
    102,zhangyao,--C--TO
    103,Alex,--C--OO
    104,yy,CFO
    105,feixue,CIO

    批量修改文件名
    &代表前面匹配到的字符

    [root@wen test1]# touch stu_102999_{1..5}_finished.jpg
    [root@wen test1]# ls
    stu_102999_1_finished.jpg stu_102999_3_finished.jpg stu_102999_5_finished.jpg
    stu_102999_2_finished.jpg stu_102999_4_finished.jpg
    [root@wen test1]# ls|sed -r 's#(^.*)_finished(.*$)#mv & 1.jpg#g'|bash
    [root@wen test1]# ls
    stu_102999_1.jpg stu_102999_3.jpg stu_102999_5.jpg
    stu_102999_2.jpg stu_102999_4.jpg

    ---------------------------------

    sed 使用-n,必须和p一起
    -n 取消默认输出
    [root@wen data]# sed '2p' person.txt
    101,oldboy,CEO
    102,zhangyao,CTO
    102,zhangyao,CTO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO
    [root@wen data]# sed -n '2p' person.txt
    102,zhangyao,CTO
    [root@wen data]# sed -n 'p' person.txt
    101,oldboy,CEO
    102,zhangyao,CTO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO

     

  • 相关阅读:
    __type_traits(traits思想)--萃取型别
    traits编程技巧
    SGI空间分配器之第二级配置器剖析
    SGI空间分配器之第一级配置器剖析
    枚举类型与联合类型
    函数指针
    c++中的placement new操作符学习
    第十六章:模板与泛型编程
    第十五章:面向对象编程
    第十五章:面向对象编程
  • 原文地址:https://www.cnblogs.com/wenyule/p/7674589.html
Copyright © 2011-2022 走看看