• shell三剑客之sed!


    背景

    sed(Stream Editor 流编辑器),作为三剑客的一份子,主要的功能有增删改查。

    为什么称之为“流”编辑器呢?

    大家知道:在Linux文件系统中,一切都可以作为文件来处理。

    比如:配置文件、设备文件、日志等等。

    sed就类似于工厂流水线作业的车间一样,文件中的每行内容都是生产元件,经过sed车间流水线处理,最终会变成成品。


     

    sed语法格式

    同grep一样,sed提供两种方式:

    ◆ stdout | sed [option] “pattern command”

    ◆ sed [option] “pattern command” file

    第一种是从文本中直接使用pattern匹配搜索

    第二种是从标准输出中处理


     

    选项


     

    pattern匹配模式


     

    sed命令-增加&删除


     

    练习:

    单行插入


     

    多行插入


     

    删除内容


     

    sed命令-修改


     

    ◆ “#”作为定界符,“/”也可以作为定界符,当替换内容有包含定界符时,需要进行转义

    ◆ 如果要修改文件内容,需要加“-i”参数

    练习:

    修改文件内容,不对源文件起效


     

    修改源文件内容


     

    修改文件指定行对应的内容


     

    sed分组替换功能

    正则表达式中的分组功能sed也是可以支持的,用()记住正则表达式的一部分,其中,1为第一个小括号里面的内容,如果还有其他的下括号,那么2即可第二个,以此类推...,最多记住9个。

    实例: I am yy teacher.这串文本想要保留yy,删除剩余的部分


     

    给配置文件中某一项配置加注释


     

    sed命令-查询

    查询相比较是最简单的,sed中的查询相比cat、more命令可以更加精细。

    例如:

    查询文件第二行内容(p即表示查询)


     

    查询文件1-10行


     

    注意:p查询命令需要和-n参数结合一起使用,如果不使用-n 会输出原来行内容及匹配行的内容,-n表示取消原来行输出


     

    综合实例

    用sed取出Linux网卡eth0的IP地址


     

    将/etc/passwd文件中非单词字符替换成空格


     

    问题?使用单引号or双引号区别?

    ◆ 双引号把双引号的内容输出出来;如果内容中有命令,变量等,会先把命令,变量解析出结果,然后再输出最终内容来。双引号内命令或变量的写法为命令或变量或$(命令或变量)。

    ◆ 单引号所见即所得,将单引号内的内容原样输出,阻止所有字符的转义。

    本文由柠檬班歪歪原创,转载需注明出处!


     

    领取100G软件测试资料

    让软件测试学习变得更简单!

    Shell脚本如何备份数据库?

    扫码即可获取解题视频


     

    一言不合就给我在看


     
  • 相关阅读:
    Spring--IOC--AOP
    SpringMVC
    elasticsearch为什么检索快?
    linux下无法启动webdriver问题
    python 日志组件
    纯js脚本操作excel
    箭头函数
    Vue与React对比
    Vue Router 路由懒加载
    Vue Router 路由守卫:完整的导航解析流程
  • 原文地址:https://www.cnblogs.com/nmb123/p/12179291.html
Copyright © 2020-2023  润新知