sed命令替换文件内容示例(在CentOS中)

通过sed命令和正则表达式,我们可以方便的完成内容替换。

这里我们以要把内容:

image: registry/mes-service:0

结尾处的0 替换为 99

image: registry/mes-service:99

为例进行展示。

 

以下是几个简单的替换示例

1、替换echo命令中的内容

echo image: registry/mes-service:.*|sed 's/mes-service:.*/mes-service:99/g'

 

2、替换cat的文件显示结果

cat green-service.yml|sed 's/mes-service:.*/mes-service:99/g'

 

3、把sed命令放进shell脚本中,通过参数改变替换内容,并将替换结果写入文件

新建shell(文件名 changeversion),内容如下:

sed -i "s/mes-service:.*/mes-service:$1/g" service.yml
cat service.yml

其中service.yml中,保存有我们文章开头的那个目标字符串“image: registry/mes-service:0”

注意sed -i 后边的字符串通过双引号包了起来,而非单引号,这样里面的 $1才能生效,从我们的命令中获取

-i 可以将替换结果写入文件,真正的修改文件内容

给shell增加执行权限(chmod +x)后,执行

./changeversion 99

可以看到service.yml中的“image: registry/mes-service:0”被替换成了““image: registry/mes-service:99”

 

posted @ 2022-02-28 14:50  剑握在手  阅读(3057)  评论(0编辑  收藏  举报
返回顶部↑