gpt4 book ai didi

linux - gsub : replacing apostrophe with double apostrophe in a string

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:53 27 4
gpt4 key购买 nike

我想在我的 shell 脚本中用双撇号替换字符串中的所有撇号(直单引号)。我使用了以下 gsub 命令:

gsub(/'/, "''", string);

但是我得到了一个错误,因为我需要插入第二个单引号来匹配第一个。如果我尝试替换字符串的另一部分,它就可以正常工作。

最佳答案

正确的做法是用它的八进制代码替换任何文字 '(s) \047:

$ echo "foo'bar" | awk '{gsub(/\047/,"&&")}1'
foo''bar

这是正确的方法,因为它可以在脚本文件中或脚本文件外工作,并且可以在正则表达式文字中工作(不像使用变量来保存引号字符,这会迫使您使用具有额外复杂性的动态正则表达式在某些情况下需要)。

此外 - 不要试图使用十六进制代码 \x27 而不是八进制 \047 因为十六进制并不总是按预期运行,请参阅 http://awk.freeshell.org/PrintASingleQuote

关于linux - gsub : replacing apostrophe with double apostrophe in a string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43785082/

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