gpt4 book ai didi

linux - Sed 错误 "sed: unmatched '/'"

转载 作者:太空狗 更新时间:2023-10-29 11:32:32 29 4
gpt4 key购买 nike

我有一个包含以下格式数据的文件:

{"parameter":"toto.tata.titi", "value":"0/2", "notif":"1"}

我使用 sed 对文件进行了更改:

sed -i "/\<$param\>/s/.*/$line/" myfile

变量是

{"parameter":"toto.tata.titi", "value":"0/2", "notif":"3"}

param变量是toto.tata.titi

上述sed命令返回错误:

sed: unmatched '/'

因为 line 变量包含 / ==> "0/2"

即使 line 变量包含 /,如何更新我的 sed 命令使其工作?

最佳答案

您的 $param$line 可能包含/导致 sed 出现语法错误。考虑使用其他分隔符,例如 |@

例子:

sed -i "/\<$param\>/s|.*|$line|" myfile

但这可能还不够。您还可以在斜杠展开时引用它们:

sed -i "/\<${param//\//\\/}\>/s|.*|$line|" myfile

也可以使用其他更安全的字符:

d=$'\xFF'  ## Or d=$(printf '\xFF') which is compatible in many shells.
sed -i "/\<${param//\//\\/}\>/s${d}.*${d}${line}${d}" myfile

关于linux - Sed 错误 "sed: unmatched '/'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25057295/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com