使用 sed 查找和更改配置文件中的信息

使用 sed 查找和更改配置文件中的信息

有一个名为partner的文件,例如:

abc
def
ghi

还有另一个conf文件,例如:

part=abc
var=x
var=y
id=123

part=def
var=z
id=345

等等...

我正在制作一个 shellscript,它使用 while 循环从“partner”读取行,然后使用 sed 在 conf 文件中搜索包含该合作伙伴名称的块。之后,最后使用 sed 替换 id 值(例如:从 123 到 123_1 )并将新块存储在另一个文件中。

while read -r var || [[ -n "$var" ]]
do sed -n '/part=$var/,/^$/p' conf.cfg | xargs sed 's/id=123/id=123_1/g' >> new.txt
done

我究竟做错了什么?因为它只给我空文本行作为输出。

答案1

在命令的参数中使用变量时,不能将其括在简单的引号中。

对 shell 脚本进行故障排除,尝试一个接一个地运行命令,...这将帮助您缩小问题范围。

sed -n "/part=$var/,/^$/p" conf.cfg

相关内容