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 简明教程
  • 相关阅读:
    iOS 各种编译错误汇总
    Reveal查看任意app的高级技巧
    PCH in Xcode 6
    iOS开发之工具篇-20个可以帮你简化移动app开发流程的工具
    UICollectionViewController xcode6.1 自定义Cell
    Xcode6.1 Prefix.pch添加方式
    最近开始研究php的缓存技术,来个系统自带的OPcache
    今天练手了下mysqlbinlog,标记下
    写了个数组多个数组合并返回的是不重复的数组
    ngnix配置thinkphp5隐藏index.php的方法亲测有效
  • 原文地址:https://www.cnblogs.com/weiweng/p/12490852.html
Copyright © 2011-2022 走看看