gpt4 book ai didi

regex - sed error near unexpected token '(' 其中 ( 是搜索字符串的一部分

转载 作者:行者123 更新时间:2023-11-29 09:38:09 24 4
gpt4 key购买 nike

我尝试在 Makefile 中搜索并替换给定的字符串,即

PROCFLAGS="SQLCHECK=SEMANTICS USERID=$(CONNECT)"

我想在行中添加 CODE=ANSI_C

PROCFLAGS="SQLCHECK=SEMANTICS USERID=$(CONNECT) CODE=ANSI_C"

Sed 应该很好地完成这个技巧.. 至少我是这么想的,但我无法理解调用 sed 时出现的语法错误:

sed -i'.bak' s:(CONNECT):(CONNECT) CODE=ANSI_C:g Makefile

我尝试添加 -r 或转义方括号 \(\) 但我总是以错误告终:

-bash: syntax error near unexpected token `('

我只能想到这里一定是我做错了什么,因为许多其他替代品确实工作正常。

最佳答案

尝试引用括号中的项目。 Bash 正试图在我认为的子 shell 中运行(CONNECT)

sed -i'.bak' "s:(CONNECT):(CONNECT) CODE=ANSI_C:g" Makefile

当您将某些内容放在括号中时,bash 会将其作为子 shell 中的命令运行。

例如,尝试 (cd/tmp; pwd);密码。您将看到子 shell 打印 /tmp,但随后第二个 pwd 将告诉您原始目录。

关于regex - sed error near unexpected token '(' 其中 ( 是搜索字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27153556/

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