【问题标题】:sed replace text between 2 stringssed 替换两个字符串之间的文本
【发布时间】:2021-07-23 23:27:58
【问题描述】:

我是 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

谢谢, 克里斯。

【问题讨论】:

  • sed -e 's/\("Build: \)\(.*\)\( was successful"\)/\1 "New Build" \3/g'
  • 感谢@WilliamPursell,这非常有效!

标签: bash macos sed


【解决方案1】:

使用\(\) 捕获组。使用 () 匹配文字括号。不知道你想用双引号做什么。试试:

$ echo '"text": "Build: Old Build was successful"' |
        sed -e 's/\("Build: \).*\( was successful"\)/\1New Build\2/g'
"text": "Build: New Build was successful"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 2019-12-25
    • 1970-01-01
    • 2018-08-29
    相关资源
    最近更新 更多