Bash sed替换两个字符串之间的文本
我是新来的Bash sed替换两个字符串之间的文本,bash,macos,sed,Bash,Macos,Sed,我是新来的sed,尽管在网上看到了各种各样的例子,但我还是无法让它工作。 基本上,我有一个文本文件,我想在其中使用sed替换两个已知字符串之间的未知字符串。我正在Mac上使用bash。这就是我目前所拥有的 BuildFinish.txt内容: { "text": "Build: Old Build was successful", } Bash代码: sed -i '' -e 's/("Build: ")\(.*\)(" w
sed
,尽管在网上看到了各种各样的例子,但我还是无法让它工作。
基本上,我有一个文本文件,我想在其中使用sed
替换两个已知字符串之间的未知字符串。我正在Mac上使用bash。这就是我目前所拥有的
BuildFinish.txt内容:
{
"text": "Build: Old Build was successful",
}
Bash代码:
sed -i '' -e 's/("Build: ")\(.*\)(" was successful")/\1 "New Build" \2/g' BuildFinish.txt
谢谢,
Chris.使用\(
和\)
捕获组。使用(
和)
匹配文字括号。不知道你想用双引号做什么。尝试:
$ echo '"text": "Build: Old Build was successful"' |
sed -e 's/\("Build: \).*\( was successful"\)/\1New Build\2/g'
"text": "Build: New Build was successful"
sed-e的/\(“构建:\)\(.*\)\(成功的“\)/\1“新构建”\3/g'
谢谢@williampersell,这非常有效!