【问题标题】:Remove a pattern using sed which has square brackets and quotes使用 sed 删除带有方括号和引号的模式
【发布时间】:2018-08-16 11:11:07
【问题描述】:

如何使用 sed 删除具有此模式的行

resourceNames: [""]

我试过了

sed -i '/resourceNames: [""]/d' ./sa.yaml

文件的一部分是这样的

- apiGroups: [""]
  resources: ["secrets"]
  resourceNames: [""]
  verbs: ["get"]
---

【问题讨论】:

  • 如果必须删除任何包含resourceNames 的行,sed -i '/resourceNames:/d' 会这样做.. 不必匹配整行.. 如果不是,示例可以添加带有resourceNames 的行以保留以及删除

标签: regex shell sed


【解决方案1】:

为您的sed 命令提供更好、更健壮的正则表达式:

sed -i '/\s*resourceNames:\s*\[""\]/d' ./sa.yaml

您只需转义 [] 以避免它们被解释为字符范围、字符列表,而不是空格,最好使用 \s*

【讨论】:

    【解决方案2】:

    好的。我在我的代码中发现了问题。这有效

     sed -i '/  resourceNames: [[]""[]]/d' ./sa.yaml
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-14
      • 2023-04-01
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 2018-01-01
      • 2022-10-19
      • 1970-01-01
      相关资源
      最近更新 更多