gpt4 book ai didi

linux - 使用 SED 替换长字符串 - 但在正则表达式中得到未终止的替换

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:04 27 4
gpt4 key购买 nike

您好,尝试用长字符串替换以下字符串:

@x@ 

使用从命令行获取的字符串:

read test    
sed -i --backup 's/@x@/'${test}'/g' file.json README.md

但它只对 1 个单词有效, 如果单词之间有空格则无效。甚至在引号之间

sed: 1: "s/@x@/string test string: unterminated substitute in regular expression

最佳答案

如果您在 MacOS 上运行它并且遇到“正则表达式中未终止的替代”,则有一个更简单的解释:

MacOS 的 sed 版本与 linux 上的通常版本略有不同。 -i 需要一个参数。如果没有,只需在 -i

之后添加 ""
sed -i "" --backup 's/@x@/'${test}'/g' file.json README.md

或者例如,如果您只需要删除圆顶线,这在 linux 上有效,但在 MacOS 上会带来“无效命令代码”

sed -i 39d filenamehere.log

这适用于 MacOS

sed -i "" 39d filenamehere.log

关于linux - 使用 SED 替换长字符串 - 但在正则表达式中得到未终止的替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52024152/

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