• sed_shell三剑客


    ###### 

    sed匹配正则表达式模式并替换

    标红处标示不包含“>”
    [root@sishen ~]# vim test.html
    <html><body><h1>Hello word!</h1></body></html>
    清除test.html文件中的所有html标签
    [root@sishen ~]# sed 's/<[^>]*>//g' test.html

    ######

    sed基本查找替换

    sed 's/find/replace/' $file

    sed 's/ //' 去掉空格

    sed -i "s#^$db_name.*;#$db_name='${DB_NAME}';#g" $sqlversion_file 替换整行

    ######

    sed高级命令之n、N、$!N

    sed [option] {sed-command} {input-file}
    sed在正常情况下,将处理的行读入模式空间(pattern space),脚本中的“sed-command(sed命令)”就一条接着一条进行处理,知道脚本执行完毕。然后该行呗输出,模式(pattern space)被清空;接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕。

    但是,由于种种原因,如用户希望在某个条件下,脚本中的某个命令被执行或希望模式空间(pattern space)保留,以便下一次使用,这都有可能使sed在处理文件的时候,不按照正常的流程来进行处理,这时候就需要用sed高级命令来满足需求。
     
    先来说说命令n和命令N
    n命令:读取下一行到pattern space。由于pattern space中有按照正常流程读取的内容,使用n命令后,pattern space中又有了一行,此时,pattern space中有2行内容,但是先读取的那一行不会被取代、覆盖或删除;当n命令后,还有其他命令p的时候,此时打印出的结果是n命令读取的那一行的内容。
    N命令:将下一行添加到pattern space中。将当前读入行和用N命令添加的下一行看成“一行”。
    $!N命令:最后一行不执行N命令。

    ######

    sed高级命令之a

    sed '/hello/aword' westos 表示把word加在含有hello后一行  默认是在后面一行追加
    [root@nfvo_single ~]# cat test.txt
    ddd
    [root@nfvo_single ~]# sed '/ddd/aabuse' test.txt
    ddd
    abuse

  • 相关阅读:
    [转]如何有效运作知识库
    针式PKM如何帮助你解决个人知识管理中的常见问题?
    知识管理的目的是什么?如何进行知识管理?
    [转]阅读《讀書這玩意兒》有感&笔记
    [转]学习的三个层次
    小鱼干的做法
    IIS ERROR: Server Application Error 和 IIS与.NET Framework的安装顺序问题
    C#调用oracle存储过程 最简单的实例
    Oracle 中游标实例
    查看Sql Server是否有打SP4
  • 原文地址:https://www.cnblogs.com/kingcs/p/14586447.html
Copyright © 2020-2023  润新知