Regex 使用带有方括号和引号的sed删除模式
如何使用sed删除具有此模式的线Regex 使用带有方括号和引号的sed删除模式,regex,shell,sed,Regex,Shell,Sed,如何使用sed删除具有此模式的线 resourceNames: [""] 我试过了 sed -i '/resourceNames: [""]/d' ./sa.yaml 文件的一部分如下所示 - apiGroups: [""] resources: ["secrets"] resourceNames: [""] verbs: ["get"] --- 好的,我在代码中找到了问题。这起作用了 sed -i '/ resourceNames: [[]""[]]/d' ./sa.ya
resourceNames: [""]
我试过了
sed -i '/resourceNames: [""]/d' ./sa.yaml
文件的一部分如下所示
- apiGroups: [""]
resources: ["secrets"]
resourceNames: [""]
verbs: ["get"]
---
好的,我在代码中找到了问题。这起作用了
sed -i '/ resourceNames: [[]""[]]/d' ./sa.yaml
为您的
sed
命令提供更好、更健壮的正则表达式:
sed -i '/\s*resourceNames:\s*\[""\]/d' ./sa.yaml
如果您只是转义
[]
以避免它们被解释为字符范围,字符列表也是,最好使用\s*
而不是空格。如果必须删除任何包含资源名称的行,sed-i'/resourceNames:/d'
。。不必匹配整行。。否则,示例可能会添加带有resourceNames
的行,这些行将被保留和删除