关于sed命令当中包含变量的坑
文章发布较早,内容可能过时,阅读注意甄别。
今天在写脚本时用到了 sed 命令,其中也学到不少新的东西,特此记录一下。
正确的操作如下所示:
sed "/$1/c $2" a.log > b.log
1
这里边用到了位置参数变量,是想制作一个可以灵活控制替换内容的脚本,在外部执行脚本的时候首先输入要替换的被匹配的内容,其次是输入替换后的内容。 执行脚本的格式大概这样:
bash aa.sh abc.url "abc.url=bcd"
1
在配置文件当中 abc.url 可能不是 bcd,那么通过这个脚本,就能够把他改成 bcd 了。
这个地方有两个地方要注意的:
- 1, sed 后边是双引号,而不是单引号,如果单引号,则此命令会失败。原因是因为其中含有变量。
- 2, 这个只是做一个预览式修改,并没有真正更改其中内容,所以需要导出,然后再倒回原文件。
上次更新: 2024/11/19, 23:11:42