zoukankan      html  css  js  c++  java
  • sed

    一。语法:

          1.直接修改源文件:sed -i 's/原字符串/替换字符/'  filename or ‘grep xxx’

          2.不修改源文件,只在屏幕上输出:sed -e 's/原字符串/替换字符/'  filename or ‘grep xxx’ 

          3. 执行sed脚本:sed -f “xxx”

    二。写法注意事项:

          1. 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线””进行转义

          2.命令中的三根斜线分隔符可以换成别的符号,有时候替换目录字符串的时候有较多斜线,这个时候换成其它的分割符是较为方便,只需要紧跟s定义即可,例如,冒号,#等:sed 's?原字符串?替换字符串?'  

          3.单引号” ‘ ’”是没有办法用反斜线””转义的,这时候只要把命令中的单引号改为双引号就行了,格式如下:sed "s/原字符串包含'/替换字符串包含'/"

          4.同时执行两个替换写法:sed -i 's/^/添加的头部&/g;s/$/&添加的尾部/g' 

          5.一些特殊字符的使用

         ”^”表示行首

         ”$”符号如果在引号中表示行尾,但是在引号外却表示末行(最后一行)

    三。使用场景:

          1. 对文件中所有匹配到的原字符串全部做替换:

             sed -i 's/原字符串/替换字符串/g'  filename

             在 s 命令里以 g 结尾表示的是:全局性,意即“替代文本取代正则表达式中每一个匹配的”。如果没有设置 g,sed 只会取代每行第一个匹配的。

         2. 对文件中某一行/某几行匹配到的做全部替换:

             sed -i '2s/原字符串/替换字符串/g'  #替换第2行

             sed -i '2,5s/原字符串/替换字符串/g' #替换2到5行

        3.  对文件中某一行/某几行匹配到的第几个做替换:

             sed -i '3,5s/filter/haha/2' test.log  #将 test.log 文件中第 3-5 行的第 2 个“filter”替换成“haha”

        4. 行首,行尾,及文件末的替换

            sed 's/^/添加的头部&/g'      #在所有行首添加

            sed 's/$/&添加的尾部/g'      #在所有行末添加     

         sed '$s/原字符串/替换字符串/g' #替换最后一行

        5.  整行替换:

             sed -e '1c/#!/bin/more' file (把第一行替换成#!/bin/more)
             思考:把第 n 行替换成 just do it
         sed -e 'nc/just do it' file
         sed -e '1,10c/I can do it' file (把 1 到 10 行替换成一行: I can do it)
             思考:换成两行(I can do it! Let's start)
         sed -e '1,10c/I can do it!/nLet'"/'"'s start' file   

       6. 用sed删除字符或换

           6.1删除行首空格

    sed -i 's/^ //g' test

          6.2删除行尾空格

    sed -i 's/ $//g' test

       7. 同时插入多行:

          sed -i 's/spec:/spec:   gateways:   - bookinfo-gateway/g' virtual-service-all-v1.yaml 

  • 相关阅读:
    列表、元组、字符串的相互转化
    python中的常用BIF
    python中的类型
    python内置模块
    打印字体颜色整理
    xml操作
    内置函数
    迭代器
    装饰器
    函数
  • 原文地址:https://www.cnblogs.com/derekchen/p/8714693.html
Copyright © 2011-2022 走看看