• 语法

linux命令:sed工具替换文件内容_Linux

linux命令:sed工具替换文件内容_Linux_02
linux命令:sed工具替换文件内容_Linux_03
linux命令:sed工具替换文件内容_Linux_04
linux命令:sed工具替换文件内容_Linux_05
linux命令:sed工具替换文件内容_Linux_06
linux命令:sed工具替换文件内容_Linux_07
linux命令:sed工具替换文件内容_Linux_08
linux命令:sed工具替换文件内容_Linux_09
linux命令:sed工具替换文件内容_Linux_10
linux命令:sed工具替换文件内容_Linux_11

  • echo替换为printf

linux命令:sed工具替换文件内容_Linux_12

  • uu会撤销修改。

  • 使用sed来修改。sed是对行数据进行筛选。

  • [ ]

linux命令:sed工具替换文件内容_Linux_13

sed '/echo/s/echo/printf/g' case.sh
  • /echo表示要查找的字符串
  • /s表示替换
  • /echo/printf表示将echo替换成printf
  • /g表示将所有的echo都替换
  • 第二种写法,比较接近于vi里的写法。实际上sed和vi同宗同源。

linux命令:sed工具替换文件内容_Linux_14

  • 往case.sh文件的第四行插入数据xxx.但是没有加-i参数,不会直接修改源文件
sed '4a xxx' case.sh

linux命令:sed工具替换文件内容_Linux_15

  • 加上-i参数

linux命令:sed工具替换文件内容_Linux_16

  • 删除第四行

linux命令:sed工具替换文件内容_Linux_17

  • 删除第二到第七行

linux命令:sed工具替换文件内容_Linux_18

  • 但是上述操作并没有真正修改文件,因为没有加-i参数

linux命令:sed工具替换文件内容_Linux_19

  • 往第四行前面插入数据

linux命令:sed工具替换文件内容_Linux_20

  • s替换

linux命令:sed工具替换文件内容_Linux_21

zxl@master:/media/zxl/软件/develop/workspace/shell/sed$ sed -i 's/${IMGNAME}/dmgeo-system-web/g' dmgeo-system.yaml 
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$ 
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$ cat dmgeo-system.yaml 



		image: dmgeo-system-web:${TAG}
pod:
  container:
    image: dmgeo-system-web:${TAG}
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$ sed -i 's/${TAG}/4.3.0/g' dmgeo-system.yaml 
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$ cat dmgeo-system.yaml 


		image: dmgeo-system-web:4.3.0
pod:
  container:
    image: dmgeo-system-web:4.3.0
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$


#也可以一次性执行多条,就像上面的,将两条合并成一条执行
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$ cat dmgeo-system.yaml 



		image: $IMGNAME:$TAG
pod:
  container:
    image: $IMGNAME:$TAG
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$ sed -i 's/$IMGNAME/dmgeo-system-web/g;s/$TAG/4.3.0/g' dmgeo-system.yaml 
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$ cat dmgeo-system.yaml 



		image: dmgeo-system-web:4.3.0
pod:
  container:
    image: dmgeo-system-web:4.3.0
zxl@master:/media/zxl/软件/develop/workspace/shell/sed$
  • 只打印匹配到的行,加-n参数

linux命令:sed工具替换文件内容_Linux_22

  • 给目标字符串BUF左边加上11,右边加上00

linux命令:sed工具替换文件内容_Linux_23
linux命令:sed工具替换文件内容_Linux_24

  • 给连续的两个数字使用指定字符包裹起来

linux命令:sed工具替换文件内容_Linux_25

  • 使用-r参数解决小括号也需要转义的问题

linux命令:sed工具替换文件内容_Linux_26

  • 一次执行多条替换

linux命令:sed工具替换文件内容_Linux_27

  • -e也可以达到同样目的

linux命令:sed工具替换文件内容_Linux_28

  • 去掉html中的所有标签,只保留内容

linux命令:sed工具替换文件内容_Linux_29