zoukankan      html  css  js  c++  java
  • Linux sed命令实现替换文本内容

    /root/data/code-s3201/publish_codex/deploy/db.properties

    db.properties中的 1.0.0.6 替换为 1.0.0.7

    sed -i 's/1.0.0.6/1.0.0.7/' /root/data/code-s3201/publish_codex/deploy/db.properties

    cat /root/data/code-s3201/publish_codex/deploy/db.properties | grep '1.0.0.7'

    1. sed替换的基本语法为:

    sed 's/原字符串/替换字符串/'

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

    2. 单引号” ‘ ’”是没有办法用反斜线””转义的,这时候只要把命令中的单引号改为双引号就行了,格式如下:

    # 要处理的字符包含单引号
    sed "s/原字符串包含'/替换字符串包含'/"

    3. 命令中的三根斜线分隔符可以换成别的符号,有时候替换目录字符串的时候有较多斜线,这个时候换成其它的分割符是较为方便,只需要紧跟s定义即可。

    # 将分隔符换成问号”?”:
    sed 's?原字符串?替换字符串?'


    4. 可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:

    # 替换所有匹配关键字
    sed 's/原字符串/替换字符串/g'

    5. 一些特殊字符的使用

      ”^”表示行首

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

    复制代码
    # 注意这里的 " & " 符号,如果没有 “&”,就会直接将匹配到的字符串替换掉
    sed 's/^/添加的头部&/g'      #在所有行首添加 sed 's/$/&添加的尾部/g'      #在所有行末添加 sed '2s/原字符串/替换字符串/g'  #替换第2行 sed '$s/原字符串/替换字符串/g' #替换最后一行 sed '2,5s/原字符串/替换字符串/g' #替换2到5行 sed '2,$s/原字符串/替换字符串/g' #替换2到最后一行
    复制代码

    6.批量替换字符串

    sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
    sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir

    7. sed处理过的输出是直接输出到屏幕上的,使用参数”i”直接在文件中替换。

    # 替换文件中的所有匹配项
    sed -i 's/原字符串/替换字符串/g' filename

    8. 多个替换可以在同一条命令中执行,用分号”;”分隔,其格式为:

    # 同时执行两个替换规则
    sed 's/^/添加的头部&/g;s/$/&添加的尾部/g'
  • 相关阅读:
    165. Compare Version Numbers
    164. Maximum Gap
    3、桶排序
    162. Find Peak Element
    160. Intersection of Two Linked Lists
    155. Min Stack
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    Linux/Unix系统编程手册 第二章:基本概念
    Linux/Unix系统编程手册 第一章:历史和标准
  • 原文地址:https://www.cnblogs.com/xingchong/p/11657702.html
Copyright © 2011-2022 走看看