zoukankan      html  css  js  c++  java
  • SED简单使用

    SED简介

    sed 全名叫 stream editor,流编辑器,用程序的方式来编辑文本。

    SED使用

    替换参数s

    #使用yours替换my,g表示替换改行所有匹配项
    sed "s/my/yours/g" demo.txt
    #指定行替换
    sed "3s/my/yours/g" demo.txt
    #指定多行替换
    sed "3,6s/my/yours/g" demo.txt
    #只替换每行第二个
    sed "s/my/yours/2" demo.txt
    #替换每行第2个以后的匹配项
    sed "s/my/yours/2g" demo.txt
    #多个匹配替换
    sed "1,3s/my/yours/g; 2,$s/my/yours/g" demo.txt
    #圆括号匹配后作为变量使用,1 2分别表示语句前面匹配的数据
    sed 's/my ([^,&]*),.*is (.*)/1:2/g' my.txt
    

    增加参数a和i

    #a参数表示增加 i参数表示插入,他们都是用于添加行的
    #插入一行数据
    sed "1 i this is my" demo.txt
    #增加一行数据在最后
    sed "$ a this my word" demo.txt
    #匹配到的每行都增加
    sed "/my/a ---" demo.txt
    

    替换命令c

    #将指定的行做替换
    sed "2 c my word" demo.txt 
    #匹配的行做替换
    sed "/my/c my word" demo.txt
    

    删除命令d

    #删除匹配的行
    sed "/fish/d" demo.txt
    #删除指定行
    sed "2d" demo.txt
    sed "2,$d" demo.txt
    

    输出命令p

    #匹配的行输出,被匹配到的行会输出两次
    sed "/fish/p" demo.txt
    #值输出匹配到的行
    sed -n "/fish/p" demo.txt
    #匹配行之间的输出
    sed -n "/dog/,/fish/p" demo.txt
    #指定行到匹配行输出
    sed -n "1,/fish/p" demo.txt
    

    相关选项

    #-e 参数
    如果需要用 sed 对文本内容进行多种操作,则需要执行多条子命令来进行操作。
    sed -e 's/hello/A/' -e 's/world/B/'
    #-i 参数
    sed 默认会把输入行读取到模式空间,简单理解就是一个内存缓冲区,sed子命令处理的内容是模式空间中的内容,而非直接处理文件内容。因此在 sed 修改模式空间内容之后,并非直接写入修改输入文件,而是打印输出到标准输出。如果需要修改输入文件,那么就可以指定 - i 选项。
    #-f 参数
    还记得 -e 选项可以来执行多个子命令操作,用分号分隔多个命令操作也是可以的,如果命令操作比较多的时候就会比较麻烦,这时候把多个子命令操作写入脚本文件,然后使用 -f 选项来指定该脚本。
    

    参考资料

    1. sed 入门详解教程
    2. sed 简明教程
  • 相关阅读:
    在jsp页面如果运行时路径错误解决方法
    Maven实现ssm框架整合
    JS进阶(二)this指南——绑定了谁?
    防御性编程方法收集
    react将多个公共组件归成一类,方便调用
    初始化构建React+Ts项目时出现:Module build failed (from ./node_modules/css-loader/dist/cjs.js): CssSyntaxError
    Dva三种方式实现dispatch的Promise回调
    ES6多层解构
    ES6解构过程添加一个默认值和赋值一个新的值
    Antd-Pro2.0版本如何修改代理,让Mock变为真实服务器接口
  • 原文地址:https://www.cnblogs.com/weiweng/p/12490852.html
Copyright © 2011-2022 走看看