- 语法
-
将
echo
替换为printf
:
-
uu
会撤销修改。 -
使用
sed
来修改。sed是对行数据进行筛选。 -
[ ]
sed '/echo/s/echo/printf/g' case.sh
- /echo表示要查找的字符串
- /s表示替换
- /echo/printf表示将echo替换成printf
- /g表示将所有的echo都替换
- 第二种写法,比较接近于vi里的写法。实际上sed和vi同宗同源。
-
往case.sh文件的第四行插入数据xxx.但是没有加
-i
参数,不会直接修改源文件
sed '4a xxx' case.sh
-
加上
-i
参数
- 删除第四行
- 删除第二到第七行
-
但是上述操作并没有真正修改文件,因为没有加
-i
参数
- 往第四行前面插入数据
-
s
替换
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
参数
- 给目标字符串BUF左边加上11,右边加上00
- 给连续的两个数字使用指定字符包裹起来
-
使用
-r
参数解决小括号也需要转义的问题
- 一次执行多条替换
-
-e
也可以达到同样目的
- 去掉html中的所有标签,只保留内容