zoukankan      html  css  js  c++  java
  • Sed命令基础操作

       sed用法的小技巧

    (1)在查找范围时不需要用到替换,所以不用s;

    (2)当只需要打印被修改行时,可以使用-n –p 选项,注意二者一定配合使用;

     

    3种方式指定命令行上的多重指令

    (1)用逗号分隔指令;

    (2)在每个指令前放置-e

    (3)输入单分号后敲击return

     

    删除: d命令
    $ sed '2d' example-----删除example文件的第二行。
    $ sed '2,$d' example-----
    删除example文件的第二行到末尾所有行。
    $ sed '$d' example-----
    删除example文件的最后一行。
    $ sed '/test/'d example-----
    删除example文件所有包含test的行。

     

     

    替换: s命令
    $ sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,

    则只有每行第一个匹配的test被替换成mytest


    $ sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行。

    也就是说,如果某一行开头的test被替换成mytest,就打印它。


    $ sed 's/^192.168.0.1/&localhost/' example-----&符号表示替换字符串中被找到的部份。
    所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost


    $ sed -n 's/(love)able/1rs/p' example-----love被标记为1

    所有loveable会被替换成lovers,而且替换的行会被打印出来。


    $ sed 's#10#100#g' example-----不论什么字符,紧跟着s命令的都被认为是新的分隔符,

    所以,“ #” 在这里是分隔符,代替了默认的“ /” 分隔符。表示把所有10替换成100
    选定行的范围:逗号

     

    注意:【在查找范围时不需要用到替换,所以不用s.


    $ sed -n '/test/,/check/p' example-----所有在模板testcheck所确定的范围内的行都被打
    印。


    $ sed -n '5,/^test/p' example-----打印从第五行开始到第一个包含以test开始的行之间的所
    有行。


    $ sed '/test/,/check/s/$/xiong test/' example-----对于模板testcheck之间的行,每行的末

    尾用字符串xiong test替换。

     

    从文件读入:r命令
    $ sed '/test/r file' example-----file里的内容被读进来,显示在与test匹配的行后面,如果
    匹配多行,则file的内容将显示在所有匹配行的下面。


    写入文件:w命令
    $ sed -n '/test/w file' example-----example中所有包含test的行都被写入file
    $ sed '1,2 w filedt' quote.txt------quote.txt文件中的前2行写入到文件filedt中;


    追加命令:a命令
    $ sed '/^test/a\--->this is a example' example $ sed '/test/i\
    new line
    -------------------------' example
    如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面。


    下一个:n命令
    $ sed '/test/{ n; s/aa/bb/; }' example-----如果test被匹配,则移动到匹配行的下一行,替
    换这一行的aa,变为bb,并打印该行,然后继续。


    变形:y命令
    $ sed '1,10y/abcde/abcde/' example-----把1--10行内所有abcde转变为大写,注意,正则表达
    式元字符不能使用这个命令。


    退出:q命令
    $ sed '10q' example-----打印完前10行后,退出sed
    保持和获取: h命令和g命令

     

     

     

     

     

     

  • 相关阅读:
    BZOJ.1034.[ZJOI2008]泡泡堂(贪心)
    BZOJ.4247.挂饰(背包DP)
    Codeforces.1040E.Network Safety(思路 并查集)
    LOJ.2863.[IOI2018]组合动作(交互)
    BZOJ.3624.[APIO2008]免费道路(Kruskal)
    BZOJ.4237.稻草人(CDQ分治 单调栈)
    BZOJ.3551.[ONTAK2010]Peaks加强版(Kruskal重构树 主席树)
    BZOJ.4946.[NOI2017]蔬菜(贪心 离线)
    BZOJ.2660.[BJOI2012]最多的方案(DP)
    BZOJ.3994.[SDOI2015]约数个数和(莫比乌斯反演)
  • 原文地址:https://www.cnblogs.com/xialiaoliao0911/p/7524013.html
Copyright © 2011-2022 走看看