加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

regex – sed – “{”和“}”之间的地址空间

发布时间:2020-12-14 02:14:33 所属栏目:Linux 来源:网络整理
导读:我在sed中指定了“{”和“}”之间的地址空间,所以我希望只将第一个“Acer”替换为“TTTT”.第二个是不期望的.我该如何解决这个问题? 我在Ubuntu 15.10上测试过,sed版本是sed(GNU sed)4.2.2. 提前致谢. $echo "[ { "manufacturer": "Acer","regularPric
我在sed中指定了“{”和“}”之间的地址空间,所以我希望只将第一个“Acer”替换为“TTTT”.第二个是不期望的.我该如何解决这个问题?
我在Ubuntu 15.10上测试过,sed版本是sed(GNU sed)4.2.2.

提前致谢.

$echo "
[
    {
        "manufacturer": "Acer","regularPrice": 165.99,},[
        "manufacturer": "Acer",],{
        "manufacturer": "Acer",}
]
" | sed "/{/,/},/ {s/"Acer"/"TTTT"/}"

其结果如下:

[
  {
    "manufacturer": "TTTT","regularPrice": 165.99,[
    "manufacturer": "Acer",{
    "manufacturer": "TTTT",}
]

解决方法

这只适用于GNU sed

sed "/{/,/ {0,/"Acer"/ s/"Acer"/"TTTT"/}"

或者更准确地说,以下也是有效的

sed "/{/,/"Acer"/s//"TTTT"/}"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读